open311 0.2.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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