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.
- checksums.yaml +7 -0
- data/CONTRIBUTING.md +49 -0
- data/README.md +11 -45
- data/lib/open311.rb +2 -2
- data/lib/open311/client.rb +2 -2
- data/lib/open311/client/connection.rb +14 -16
- data/lib/open311/client/request.rb +12 -13
- data/lib/open311/client/service.rb +22 -15
- data/lib/open311/configuration.rb +3 -3
- data/lib/open311/response/raise_error.rb +33 -0
- data/lib/open311/version.rb +13 -1
- data/open311.gemspec +22 -27
- metadata +94 -231
- data/.gemtest +0 -0
- data/.gitignore +0 -10
- data/.rspec +0 -3
- data/.travis.yml +0 -12
- data/Gemfile +0 -8
- data/Rakefile +0 -23
- data/lib/faraday/response/raise_error.rb +0 -31
- data/spec/faraday/response_spec.rb +0 -33
- data/spec/fixtures/403.xml +0 -4
- data/spec/fixtures/get_service_request.xml +0 -23
- data/spec/fixtures/post_service_request.xml +0 -10
- data/spec/fixtures/request_id_from_token.xml +0 -7
- data/spec/fixtures/service_definition.xml +0 -23
- data/spec/fixtures/service_requests.xml +0 -41
- data/spec/fixtures/services.xml +0 -30
- data/spec/helper.rb +0 -15
- data/spec/open311_spec.rb +0 -178
@@ -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
|
data/spec/fixtures/403.xml
DELETED
@@ -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,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>
|
data/spec/fixtures/services.xml
DELETED
@@ -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>
|
data/spec/helper.rb
DELETED
@@ -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
|
data/spec/open311_spec.rb
DELETED
@@ -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
|