aboutsummaryrefslogtreecommitdiffstats
path: root/web/json.cgi
diff options
context:
space:
mode:
authorlouise <louise>2009-07-01 09:45:12 +0000
committerlouise <louise>2009-07-01 09:45:12 +0000
commit7fc2945bacc86fb54b7c40291d2484098dda47a1 (patch)
tree2ba826e32f23aa3ab01a910bbbdb63f51fcc9a30 /web/json.cgi
parent03adc57aca74c6083eee2350112efed3bf00c4f4 (diff)
Basic json interface for getting lists of problems
Diffstat (limited to 'web/json.cgi')
-rwxr-xr-xweb/json.cgi34
1 files changed, 34 insertions, 0 deletions
diff --git a/web/json.cgi b/web/json.cgi
new file mode 100755
index 000000000..91f2676a7
--- /dev/null
+++ b/web/json.cgi
@@ -0,0 +1,34 @@
+#!/usr/bin/perl -w -I../perllib
+
+# json.cgi:
+# A small JSON API for FixMyStreet
+#
+# Copyright (c) 2009 UK Citizens Online Democracy. All rights reserved.
+# Email: louise@mysociety.org. WWW: http://www.mysociety.org
+#
+# $Id: json.cgi,v 1.1 2009-07-01 09:45:12 louise Exp $
+
+use strict;
+use Error qw(:try);
+use JSON;
+use Standard;
+
+sub main {
+ my $q = shift;
+ my $problems;
+ my $type = $q->param('type') || '';
+ my $start_date = $q->param('start_date') || '';
+ my $end_date = $q->param('end_date') || '';
+ print $q->header( -type => 'text/html; charset=utf-8' );
+ if ($type eq 'new_problems'){
+ $problems = Problems::created_in_interval($start_date, $end_date);
+ } elsif ($type eq 'fixed_problems') {
+ $problems = Problems::fixed_in_interval($start_date, $end_date);
+ }
+ my $out = JSON::to_json($problems);
+ print $out;
+}
+
+
+Page::do_fastcgi(\&main);
+