aboutsummaryrefslogtreecommitdiffstats
path: root/bin/fetch-comments
blob: e0e53826e33ccbbc11f3c74fc4974f73086c73e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/bin/env perl

# send-reports:
# Send new problem reports to councils
#
# Copyright (c) 2011 UK Citizens Online Democracy. All rights reserved.
# Email: matthew@mysociety.org. WWW: http://www.mysociety.org

use strict;
use warnings;
require 5.8.0;

use Digest::MD5;
use Encode;
use Error qw(:try);
use CronFns;

use FixMyStreet::App;

use Utils;
use mySociety::Config;
use mySociety::EmailUtil;

use Open311;
use Open311::GetServiceRequestUpdates;

# send_method config values found in by-area config data, for selecting to appropriate method
use constant SEND_METHOD_EMAIL   => 'email';
use constant SEND_METHOD_OPEN311 => 'open311';

# Set up site, language etc.
my ( $verbose, $nomail ) = CronFns::options();
my $base_url = mySociety::Config::get('BASE_URL');
my $site     = CronFns::site($base_url);

my $councils = FixMyStreet::App->model('DB::Open311Conf')->search(
    {
        send_method   => SEND_METHOD_OPEN311,
        send_comments => 1,
        comment_user_id  => { '!=', undef },
        endpoint      => { '!=', '' },
    }
);

while ( my $council = $councils->next ) {

    my $o = Open311->new(
        endpoint     => $council->endpoint,
        api_key      => $council->api_key,
        jurisdiction => $council->jurisdiction,
    );

    my $updates =
      Open311::GetServiceRequestUpdates->new(
        system_user => $council->comment_user );

    $updates->update_comments( $o, { areaid => $council->area_id }, );
}