open311 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,33 +0,0 @@
1
- require 'helper'
2
-
3
- describe Faraday::Response do
4
- {
5
- 400 => Open311::BadRequest,
6
- 401 => Open311::Unauthorized,
7
- 403 => Open311::Forbidden,
8
- 404 => Open311::NotFound,
9
- 406 => Open311::NotAcceptable,
10
- 500 => Open311::InternalServerError,
11
- 502 => Open311::BadGateway,
12
- 503 => Open311::ServiceUnavailable,
13
- }.each do |status, exception|
14
- context "when HTTP status is #{status}" do
15
-
16
- before do
17
- Open311.configure do |config|
18
- config.endpoint = 'http://api.dc.org/open311/v2_dev/'
19
- config.jurisdiction = 'dc.gov'
20
- end
21
- stub_request(:get, 'http://api.dc.org/open311/v2_dev/services.xml').
22
- with(:query => {:jurisdiction_id => 'dc.gov'}).
23
- to_return(:status => status)
24
- end
25
-
26
- it "should raise #{exception.name} error" do
27
- lambda do
28
- Open311.service_list
29
- end.should raise_error(exception)
30
- end
31
- end
32
- end
33
- end
@@ -1,4 +0,0 @@
1
- HTTP/1.1 403 Forbidden
2
-
3
- <?xml version="1.0" encoding="utf-8"?>
4
- <error>Invalid api_key received -- can't proceed with create_request.</error>
@@ -1,23 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <service_requests>
3
- <request>
4
- <service_request_id>638344</service_request_id>
5
- <status>closed</status>
6
- <status_notes>Duplicate request.</status_notes>
7
- <service_name>Sidewalk and Curb Issues</service_name>
8
- <service_code>006</service_code>
9
- <description></description>
10
- <agency_responsible></agency_responsible>
11
- <service_notice></service_notice>
12
- <requested_datetime>2010-04-14T06:37:38-08:00</requested_datetime>
13
- <updated_datetime>2010-04-14T06:37:38-08:00</updated_datetime>
14
- <expected_datetime>2010-04-15T06:37:38-08:00</expected_datetime>
15
- <address>8TH AVE and JUDAH ST</address>
16
- <address_id>545483</address_id>
17
- <zipcode>94122</zipcode>
18
- <lat>37.762221815</lat>
19
- <long>-122.4651145</long>
20
- <media_url>http://open311.city.gov.s3.amazonaws.com/requests/media/638344.rss </media_url>
21
- </request>
22
-
23
- </service_requests>
@@ -1,10 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <service_requests>
3
- <request>
4
- <service_request_id>293944</service_request_id>
5
- <service_notice>
6
- The City will inspect and require the responsible party to correct within 24 hours and/or issue a Correction Notice or Notice of Violation of the Public Works Code
7
- </service_notice>
8
- <account_id/>
9
- </request>
10
- </service_requests>
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <service_requests>
3
- <request>
4
- <service_request_id>638344</service_request_id>
5
- <token>12345</token>
6
- </request>
7
- </service_requests>
@@ -1,23 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <service_definition>
3
- <service_code>DMV66</service_code>
4
- <attribute>
5
- <variable>true</variable>
6
- <code>WHISHETN</code>
7
- <datatype>singlevaluelist</datatype>
8
- <required>true</required>
9
- <datatype_description></datatype_description>
10
- <order>1</order>
11
- <description>What is the ticket/tag/DL number?</description>
12
- <values>
13
- <value>
14
- <key>123</key>
15
- <name>Ford</name>
16
- </value>
17
- <value>
18
- <key>124</key>
19
- <name>Chrysler</name>
20
- </value>
21
- </values>
22
- </attribute>
23
- </service_definition>
@@ -1,41 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <service_requests>
3
- <request>
4
- <service_request_id>638344</service_request_id>
5
- <status>closed</status>
6
- <status_notes>Duplicate request.</status_notes>
7
- <service_name>Sidewalk and Curb Issues</service_name>
8
- <service_code>006</service_code>
9
- <description></description>
10
- <agency_responsible></agency_responsible>
11
- <service_notice></service_notice>
12
- <requested_datetime>2010-04-14T06:37:38-08:00</requested_datetime>
13
- <updated_datetime>2010-04-14T06:37:38-08:00</updated_datetime>
14
- <expected_datetime>2010-04-15T06:37:38-08:00</expected_datetime>
15
- <address>8TH AVE and JUDAH ST</address>
16
- <address_id>545483</address_id>
17
- <zipcode>94122</zipcode>
18
- <lat>37.762221815</lat>
19
- <long>-122.4651145</long>
20
- <media_url>http://open311.city.gov.s3.amazonaws.com/requests/media/638344.rss </media_url>
21
- </request>
22
- <request>
23
- <service_request_id>638349</service_request_id>
24
- <status>open</status>
25
- <status_notes></status_notes>
26
- <service_name>Sidewalk and Curb Issues</service_name>
27
- <service_code>006</service_code>
28
- <description></description>
29
- <agency_responsible></agency_responsible>
30
- <service_notice></service_notice>
31
- <requested_datetime>2010-04-19T06:37:38-08:00</requested_datetime>
32
- <updated_datetime>2010-04-19T06:37:38-08:00</updated_datetime>
33
- <expected_datetime>2010-04-19T06:37:38-08:00</expected_datetime>
34
- <address>8TH AVE and JUDAH ST</address>
35
- <address_id>545483</address_id>
36
- <zipcode>94122</zipcode>
37
- <lat>37.762221815</lat>
38
- <long>-122.4651145</long>
39
- <media_url>http://open311.city.gov.s3.amazonaws.com/requests/media/638349.rss </media_url>
40
- </request>
41
- </service_requests>
@@ -1,30 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <services xmlns:m="http://org/sfgov/sf311v2/services" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><service><service_code>001</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Litter Receptacles</group><service_name>Cans_Left_Out_24x7</service_name><description>Garbage or recycling cans that have been left out for more than 24 hours after collection. Violators will be cited.
3
- </description></service><service><service_code>002</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Street Defects</group><service_name>Construction_Plate_Shifted</service_name><description>Metal construction plate covering the street or sidewalk has been moved.
4
- </description></service><service><service_code>003</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Sidewalk or Curb</group><service_name>Curb_or_Curb_Ramp_Defect</service_name><description>Sidewalk curb or ramp has problems such as cracking, missing pieces, holes, and/or chipped curb.
5
- </description></service><service><service_code>004</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Litter Receptacles</group><service_name>Damaged_City_Can</service_name><description>Damage to a city garbage receptacle such as missing parts (lid, door, liner) or other physical damage.
6
- </description></service><service><service_code>005</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Sidewalk or Curb</group><service_name>Damaged_Side_Sewer_Vent_Cover</service_name><description>Damage to a side sewer vent cover with problems such as cracking, bending, rusting, or denting</description></service><service><service_code>006</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Tree Maintenance</group><service_name>Damaged_Tree</service_name><description>Damage to a city maintained tree. To check whether a tree is city maintained: http://bit.ly/6hsDk1</description></service><service><service_code>007</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Graffiti</group><service_name>Graffiti - Public - Bike_rack</service_name><description>Graffiti on a bike rack that does not contain racial slurs, profanity, or gang related language</description></service><service><service_code>008</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Graffiti</group><service_name>Graffiti - Public - News_rack</service_name><description>Graffiti on a news rack that does not contain racial slurs, profanity, or gang related language
7
- </description></service><service><service_code>009</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Graffiti</group><service_name>Graffiti - Public - Parking_meter</service_name><description>Graffiti on a parking meter that does not contain racial slurs, profanity, or gang related language
8
- </description></service><service><service_code>010</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Graffiti</group><service_name>Graffiti - Public - Pay_phone</service_name><description>Graffiti on a pay phone that does not contain racial slurs, profanity, or gang related language.
9
- </description></service><service><service_code>011</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Graffiti</group><service_name>Graffiti - Private - Not_Offensive</service_name><description>Graffiti on a privately owned building or structure that does not contain racial slurs, profanity, or gang related language
10
- </description></service><service><service_code>012</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Graffiti</group><service_name>Graffiti - Private - Offensive</service_name><description>Graffiti on a privately owned building or structure that contains racial slurs, profanity, or gang related language
11
- </description></service><service><service_code>013</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Graffiti</group><service_name>Graffiti - Public - Other_enter_additional_details_below</service_name><description>Graffiti on public property (building, pole, sidewalk, hydrant, etc) with racial slurs, profanity, or gang related language
12
- </description></service><service><service_code>015</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Illegal Dumping</group><service_name>Illegal_Dumping</service_name><description>Identify someone that has dumped or is dumping furniture or garbage onto the street or sidewalk. Violators will be cited
13
- </description></service><service><service_code>016</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Tree Maintenance</group><service_name>Landscaping</service_name><description>Request maintenance on public property (except on park property) such as lawn mowing, bush or strip trimming and removal
14
- </description></service><service><service_code>017</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Street and Sidewalk Cleaning</group><service_name>Missed_Route_Mechanical_Sweeping</service_name><description>Street cleaning sweeper did not show up as scheduled according to the street cleaning signs
15
- </description></service><service><service_code>018</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Sidewalk or Curb</group><service_name>Missing_Side_Sewer_Vent_Cover</service_name><description>The 4" side sewer vent cover (http://bit.ly/57BlOv) is missing from the sidewalk
16
- </description></service><service><service_code>019</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Overflowing City Receptacle or Dumpster</group><service_name>Overflowing_City_Receptacle_or_Dumpster</service_name><description>City receptacle is overflowing and/or has garbage on and around the container
17
- </description></service><service><service_code>020</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Tree Maintenance</group><service_name>Overgrown_Tree</service_name><description>Request that a city maintained tree (except on park property) be trimmed. To check whether a tree is city maintained: http://bit.ly/6hsDk1
18
- </description></service><service><service_code>021</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Street Defects</group><service_name>Pavement_Defect</service_name><description>Defect on the street such as broken, cracked, and sinking asphalt or concrete
19
- </description></service><service><service_code>022</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Sewer Issues</group><service_name>Sewage_Back_Up Out_of_catch_basin</service_name><description>Sewage or dirty water coming out of a catchbasin (located at the corner of intersections)
20
- </description></service><service><service_code>023</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Sewer Issues</group><service_name>Side_Sewer_issues Water_coming_out</service_name><description>Sewage or odor coming out of a 4 inch side sewer (http://bit.ly/57BlOv) located on the sidewalk
21
- </description></service><service><service_code>024</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Sidewalk Cleaning</group><service_name>Sidewalk_Cleaning</service_name><description>Have garbage or human waste removed from the sidewalk and/or request services such as steam cleaning of sidewalks
22
- </description></service><service><service_code>025</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Sidewalk Defect</group><service_name>Sidewalk_Defect</service_name><description>Defect on the sidewalk such as broken, cracked, and/or sinking concrete
23
- </description></service><service><service_code>026</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Street Cleaning</group><service_name>Street_Cleaning</service_name><description>Request to have garbage or human waste removed from the street
24
- </description></service><service><service_code>027</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Tree Maintenance</group><service_name>Damaging_Property</service_name><description>Tree is damaging property (except for parks) or housing structure. City will address problem if it is a city maintained tree otherwise the property owner is notified to correct the issue
25
- </description></service><service><service_code>028</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Graffiti</group><service_name>Water_Main_Break</service_name><description>Street is flooding due to water coming from within the asphalt or from a catchbasin
26
- </description></service><service><service_code>029</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Graffiti</group><service_name>Sign - Defaced</service_name><description>Graffiti on a street sign such as a stop sign, street name, and/or other parking and traffic signs
27
- </description></service><service><service_code>030</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Sewer Issues</group><service_name>Side_Sewer_issues Odor</service_name><description>Odor coming out of a 4 inch side sewer (http://bit.ly/57BlOv) located on the sidewalk.
28
- </description></service><service><service_code>031</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Sewer Issues</group><service_name>Sewage_Back_up Out_of_manhole_cover</service_name><description>Sewage or dirty water coming out of a manhole cover (typically located in the a street or alley)
29
- </description></service><service><service_code>032</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Sewer Issues</group><service_name>Sewage_Back_up Outofsewervent4inch</service_name><description>Sewage or dirty water coming out of a sewer vent (located on the sidewalk)
30
- </description></service><service><service_code>375</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Street or Sidewalk</group><service_name>Damaged_Benches_on_Sidewalk</service_name><description>Report a damaged bench on city property.</description></service><service><service_code>376</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Street or Sidewalk</group><service_name>Damaged_Bike_Rack</service_name><description>Report a damaged bike rack on city property.</description></service><service><service_code>377</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Street or Sidewalk</group><service_name>Damaged_Kiosk_or_Public_Toilet</service_name><description>Report a damaged kiosk or public toilet on city property.</description></service><service><service_code>378</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Street or Sidewalk</group><service_name>Damaged_News_Rack</service_name><description>Report a damaged news rack on city property.</description></service><service><service_code>379</service_code><metadata>false</metadata><type>realtime</type><keywords/><group>Street or Sidewalk</group><service_name>Damaged_Parking_Meter</service_name><description>Report a damaged parking meter on city property.</description></service></services>
@@ -1,15 +0,0 @@
1
- unless ENV['CI']
2
- require 'simplecov'
3
- SimpleCov.start
4
- end
5
- require 'open311'
6
- require 'rspec'
7
- require 'webmock/rspec'
8
-
9
- def fixture_path
10
- File.expand_path("../fixtures", __FILE__)
11
- end
12
-
13
- def fixture(file)
14
- File.new(fixture_path + '/' + file)
15
- end
@@ -1,178 +0,0 @@
1
- require 'helper'
2
-
3
- describe Open311 do
4
- after do
5
- Open311.reset
6
- end
7
-
8
- describe ".respond_to?" do
9
- it "should return true if method exists" do
10
- Open311.respond_to?(:new, true).should be_true
11
- end
12
- end
13
-
14
- describe ".new" do
15
- it "should be a Open311::Client" do
16
- Open311.new.should be_a Open311::Client
17
- end
18
- end
19
- end
20
-
21
- describe Open311, ".service_list" do
22
- before do
23
- Open311.configure do |config|
24
- config.endpoint = 'http://api.dc.org/open311/v2_dev/'
25
- config.jurisdiction = 'dc.gov'
26
- end
27
- stub_request(:get, 'http://api.dc.org/open311/v2_dev/services.xml').
28
- with(:query => {:jurisdiction_id => 'dc.gov'}).
29
- to_return(:body => fixture('services.xml'), :headers => {'Content-Type' => 'text/xml; charset=utf-8'})
30
- end
31
-
32
- it "should request the correct resource" do
33
- Open311.service_list
34
- a_request(:get, 'http://api.dc.org/open311/v2_dev/services.xml').
35
- with(:query => {:jurisdiction_id => 'dc.gov'}).
36
- should have_been_made
37
- end
38
-
39
- it "should return the correct results" do
40
- services = Open311.service_list
41
- services.should be_an Array
42
- services.first.service_code.should == '001'
43
- end
44
- end
45
-
46
- describe Open311, ".service_definition" do
47
- before do
48
- Open311.configure do |config|
49
- config.endpoint = 'http://blasius.ws:3003/open311/'
50
- config.jurisdiction = 'dc.gov'
51
- end
52
- stub_request(:get, 'http://blasius.ws:3003/open311/services/033.xml').
53
- with(:query => {:jurisdiction_id => 'dc.gov'}).
54
- to_return(:body => fixture('service_definition.xml'), :headers => {'Content-Type' => 'text/xml; charset=utf-8'})
55
- end
56
-
57
- it "should request the correct resource" do
58
- Open311.service_definition('033')
59
- a_request(:get, 'http://blasius.ws:3003/open311/services/033.xml').
60
- with(:query => {:jurisdiction_id => 'dc.gov'}).
61
- should have_been_made
62
- end
63
-
64
- it "should return the correct results" do
65
- service_def = Open311.service_definition('033')
66
- service_def.should be_an Hash
67
- service_def.service_code.should == "DMV66"
68
- end
69
- end
70
-
71
- describe Open311, ".service_requests" do
72
- before do
73
- Open311.configure do |config|
74
- config.endpoint = 'http://blasius.ws:3003/open311/'
75
- config.jurisdiction = 'dc.gov'
76
- end
77
- stub_request(:get, 'http://blasius.ws:3003/open311/requests.xml').
78
- with(:query => {:jurisdiction_id => 'dc.gov'}).
79
- to_return(:body => fixture('service_requests.xml'), :headers => {'Content-Type' => 'text/xml; charset=utf-8'})
80
- end
81
-
82
- it "should request the correct resource" do
83
- Open311.service_requests
84
- a_request(:get, 'http://blasius.ws:3003/open311/requests.xml').
85
- with(:query => {:jurisdiction_id => 'dc.gov'}).
86
- should have_been_made
87
- end
88
-
89
- it "should return the correct results" do
90
- services = Open311.service_requests
91
- services.should be_an Array
92
- services.first.first.service_request_id.should == '638344'
93
- end
94
- end
95
-
96
- describe Open311, ".get_service_request" do
97
- before do
98
- Open311.configure do |config|
99
- config.endpoint = 'http://blasius.ws:3003/open311/'
100
- config.jurisdiction = 'dc.gov'
101
- end
102
- stub_request(:get, 'http://blasius.ws:3003/open311/requests/638344.xml').
103
- with(:query => {:jurisdiction_id => 'dc.gov'}).
104
- to_return(:body => fixture('service_requests.xml'), :headers => {'Content-Type' => 'text/xml; charset=utf-8'})
105
- end
106
-
107
- it "should request the correct resource" do
108
- Open311.get_service_request(638344)
109
- a_request(:get, 'http://blasius.ws:3003/open311/requests/638344.xml').
110
- with(:query => {:jurisdiction_id => 'dc.gov'}).
111
- should have_been_made
112
- end
113
-
114
- it "should return the correct results" do
115
- service_request = Open311.get_service_request(638344)
116
- service_request.should be_an Array
117
- service_request.first.service_request_id.should == '638344'
118
- end
119
- end
120
-
121
- describe Open311, ".post_service_request" do
122
- before do
123
- Open311.configure do |config|
124
- config.endpoint = 'http://blasius.ws:3003/open311/'
125
- config.jurisdiction = 'dc.gov'
126
- config.api_key = 'xyz'
127
- end
128
-
129
- stub_request(:post, 'blasius.ws:3003/open311/requests.xml').
130
- to_return(:body => fixture('post_service_request.xml'), :headers => {'Content-Type' => 'text/xml; charset=utf-8'})
131
- end
132
-
133
- it "should return the correct results" do
134
- service_request_params = {
135
- :service_code => '001',
136
- :address_string => '1234 5th street',
137
- :email => 'smit222@sfgov.edu',
138
- :device_id => 'tt222111',
139
- :account_id => '12345',
140
- :first_name => 'john',
141
- :last_name => 'smith',
142
- :phone => '111111111',
143
- :description => 'A large sinkhole is destroying the street',
144
- :media_url => 'http://farm5.static.flickr.com/4057/4660699337_9aa4541ce1_o.jpg',
145
- :lat => '38.888486',
146
- :long => '-77.020179',
147
- }
148
- service_request_response = Open311.post_service_request(service_request_params)
149
- service_request_response.service_request_id.should == '293944'
150
- end
151
- end
152
-
153
- describe Open311, ".request_id_from_token" do
154
-
155
- before do
156
- Open311.configure do |config|
157
- config.endpoint = 'http://open311.sfgov.org/dev/v2/'
158
- config.jurisdiction = 'sfgov.org'
159
- end
160
- stub_request(:get, 'http://open311.sfgov.org/dev/v2/tokens/12345.xml').
161
- with(:query => {:jurisdiction_id => 'sfgov.org'}).
162
- to_return(:body => fixture('request_id_from_token.xml'), :headers => {'Content-Type' => 'text/xml; charset=utf-8'})
163
- end
164
-
165
- it "should request the correct resource" do
166
- Open311.request_id_from_token(12345)
167
- a_request(:get, 'http://open311.sfgov.org/dev/v2/tokens/12345.xml').
168
- with(:query => {:jurisdiction_id => 'sfgov.org'}).
169
- should have_been_made
170
- end
171
-
172
- it "should return the correct result" do
173
- service_request = Open311.request_id_from_token(12345)
174
- service_request.service_request_id.should == '638344'
175
- service_request.token.should == '12345'
176
- end
177
-
178
- end