aladtec 0.2.0 → 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 +5 -5
- data/.travis.yml +8 -1
- data/CHANGELOG.md +4 -0
- data/Gemfile +2 -0
- data/README.md +1 -0
- data/Rakefile +4 -2
- data/aladtec.gemspec +20 -16
- data/lib/aladtec.rb +12 -4
- data/lib/aladtec/client.rb +55 -80
- data/lib/aladtec/event.rb +16 -8
- data/lib/aladtec/exceptions.rb +2 -0
- data/lib/aladtec/member.rb +16 -4
- data/lib/aladtec/position.rb +11 -6
- data/lib/aladtec/range.rb +15 -11
- data/lib/aladtec/schedule.rb +12 -13
- data/lib/aladtec/scheduled_now.rb +20 -0
- data/lib/aladtec/version.rb +3 -1
- data/spec/aladtec/aladtec_spec.rb +18 -1
- data/spec/aladtec/client_spec.rb +89 -102
- data/spec/fixtures/events.json +55 -0
- data/spec/fixtures/members.json +39 -0
- data/spec/fixtures/scheduled_time.json +54 -0
- data/spec/fixtures/scheduled_time_now.json +24 -0
- data/spec/fixtures/schedules.json +32 -0
- data/spec/spec_helper.rb +9 -1
- metadata +50 -28
- data/lib/aladtec/authentication.rb +0 -16
- data/lib/aladtec/configuration.rb +0 -37
- data/spec/aladtec/configuration_spec.rb +0 -26
- data/spec/fixtures/authenticate_member.xml +0 -6
- data/spec/fixtures/get_events.xml +0 -1
- data/spec/fixtures/get_members.xml +0 -1
- data/spec/fixtures/get_scheduled_time_now.xml +0 -21
- data/spec/fixtures/get_scheduled_time_ranges.xml +0 -27
- data/spec/fixtures/get_schedules.xml +0 -57
@@ -0,0 +1,24 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"schedule_id": 1,
|
4
|
+
"positions": [
|
5
|
+
{
|
6
|
+
"position_id": 1,
|
7
|
+
"member_id": 42
|
8
|
+
}
|
9
|
+
]
|
10
|
+
},
|
11
|
+
{
|
12
|
+
"schedule_id": 2,
|
13
|
+
"positions": [
|
14
|
+
{
|
15
|
+
"position_id": 3,
|
16
|
+
"member_id": 27
|
17
|
+
},
|
18
|
+
{
|
19
|
+
"position_id": 4,
|
20
|
+
"member_id": 22
|
21
|
+
}
|
22
|
+
]
|
23
|
+
}
|
24
|
+
]
|
@@ -0,0 +1,32 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"schedule_id": 1,
|
4
|
+
"name": "Ambulance 1",
|
5
|
+
"is_archived": false,
|
6
|
+
"positions": [
|
7
|
+
{
|
8
|
+
"position_id": 1,
|
9
|
+
"label": "Driver"
|
10
|
+
},
|
11
|
+
{
|
12
|
+
"position_id": 2,
|
13
|
+
"label": "Firefighter"
|
14
|
+
}
|
15
|
+
]
|
16
|
+
},
|
17
|
+
{
|
18
|
+
"schedule_id": 2,
|
19
|
+
"name": "Fire Crew 1",
|
20
|
+
"is_archived": false,
|
21
|
+
"positions": [
|
22
|
+
{
|
23
|
+
"position_id": 3,
|
24
|
+
"label": "Slot 1"
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"position_id": 4,
|
28
|
+
"label": "Slot 2"
|
29
|
+
}
|
30
|
+
]
|
31
|
+
}
|
32
|
+
]
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'aladtec'
|
2
4
|
require 'rspec'
|
3
5
|
require 'webmock/rspec'
|
6
|
+
require 'dry/configurable/test_interface'
|
7
|
+
|
8
|
+
module Aladtec
|
9
|
+
enable_test_interface
|
10
|
+
end
|
4
11
|
|
5
12
|
begin
|
6
13
|
require 'pry'
|
@@ -11,10 +18,11 @@ RSpec.configure do |config|
|
|
11
18
|
config.expect_with :rspec do |c|
|
12
19
|
c.syntax = :expect
|
13
20
|
end
|
21
|
+
config.filter_run_when_matching :focus
|
14
22
|
end
|
15
23
|
|
16
24
|
def fixture_path
|
17
|
-
File.expand_path(
|
25
|
+
File.expand_path('fixtures', __dir__)
|
18
26
|
end
|
19
27
|
|
20
28
|
def fixture(file)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aladtec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Travis Dahlke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,14 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: pry
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rake
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,13 +81,27 @@ dependencies:
|
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
84
|
+
name: dry-configurable
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
87
|
- - ">="
|
74
88
|
- !ruby/object:Gem::Version
|
75
89
|
version: '0'
|
76
|
-
type: :
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: dry-initializer
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
77
105
|
prerelease: false
|
78
106
|
version_requirements: !ruby/object:Gem::Requirement
|
79
107
|
requirements:
|
@@ -81,7 +109,7 @@ dependencies:
|
|
81
109
|
- !ruby/object:Gem::Version
|
82
110
|
version: '0'
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
112
|
+
name: http
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
86
114
|
requirements:
|
87
115
|
- - ">="
|
@@ -94,8 +122,8 @@ dependencies:
|
|
94
122
|
- - ">="
|
95
123
|
- !ruby/object:Gem::Version
|
96
124
|
version: '0'
|
97
|
-
description: Retrieve schedules and events from the Aladtec API
|
98
|
-
Fire Manager, Zanager.
|
125
|
+
description: "Retrieve schedules and events from the Aladtec API.\n Works with
|
126
|
+
EMS Manager, Fire Manager, Zanager. "
|
99
127
|
email:
|
100
128
|
- dahlke.travis@gmail.com
|
101
129
|
executables: []
|
@@ -111,27 +139,24 @@ files:
|
|
111
139
|
- Rakefile
|
112
140
|
- aladtec.gemspec
|
113
141
|
- lib/aladtec.rb
|
114
|
-
- lib/aladtec/authentication.rb
|
115
142
|
- lib/aladtec/client.rb
|
116
|
-
- lib/aladtec/configuration.rb
|
117
143
|
- lib/aladtec/event.rb
|
118
144
|
- lib/aladtec/exceptions.rb
|
119
145
|
- lib/aladtec/member.rb
|
120
146
|
- lib/aladtec/position.rb
|
121
147
|
- lib/aladtec/range.rb
|
122
148
|
- lib/aladtec/schedule.rb
|
149
|
+
- lib/aladtec/scheduled_now.rb
|
123
150
|
- lib/aladtec/version.rb
|
124
151
|
- spec/aladtec/aladtec_spec.rb
|
125
152
|
- spec/aladtec/client_spec.rb
|
126
|
-
- spec/
|
127
|
-
- spec/fixtures/
|
128
|
-
- spec/fixtures/
|
129
|
-
- spec/fixtures/
|
130
|
-
- spec/fixtures/
|
131
|
-
- spec/fixtures/get_scheduled_time_ranges.xml
|
132
|
-
- spec/fixtures/get_schedules.xml
|
153
|
+
- spec/fixtures/events.json
|
154
|
+
- spec/fixtures/members.json
|
155
|
+
- spec/fixtures/scheduled_time.json
|
156
|
+
- spec/fixtures/scheduled_time_now.json
|
157
|
+
- spec/fixtures/schedules.json
|
133
158
|
- spec/spec_helper.rb
|
134
|
-
homepage:
|
159
|
+
homepage: https://github.com/travisdahlke/aladtec
|
135
160
|
licenses:
|
136
161
|
- MIT
|
137
162
|
metadata: {}
|
@@ -150,19 +175,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
175
|
- !ruby/object:Gem::Version
|
151
176
|
version: '0'
|
152
177
|
requirements: []
|
153
|
-
|
154
|
-
rubygems_version: 2.5.1
|
178
|
+
rubygems_version: 3.0.3
|
155
179
|
signing_key:
|
156
180
|
specification_version: 4
|
157
181
|
summary: Client library for the Aladtec API
|
158
182
|
test_files:
|
159
183
|
- spec/aladtec/aladtec_spec.rb
|
160
184
|
- spec/aladtec/client_spec.rb
|
161
|
-
- spec/
|
162
|
-
- spec/fixtures/
|
163
|
-
- spec/fixtures/
|
164
|
-
- spec/fixtures/
|
165
|
-
- spec/fixtures/
|
166
|
-
- spec/fixtures/get_scheduled_time_ranges.xml
|
167
|
-
- spec/fixtures/get_schedules.xml
|
185
|
+
- spec/fixtures/events.json
|
186
|
+
- spec/fixtures/members.json
|
187
|
+
- spec/fixtures/scheduled_time.json
|
188
|
+
- spec/fixtures/scheduled_time_now.json
|
189
|
+
- spec/fixtures/schedules.json
|
168
190
|
- spec/spec_helper.rb
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module Aladtec
|
2
|
-
class Authentication
|
3
|
-
attr_accessor :code, :retry, :message, :member
|
4
|
-
|
5
|
-
def initialize(args = {})
|
6
|
-
@code = args["code"].to_i
|
7
|
-
@retry = args["retry"]
|
8
|
-
@message = args["message"]
|
9
|
-
@member = args["member"]
|
10
|
-
end
|
11
|
-
|
12
|
-
def success?
|
13
|
-
self.code == 0
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
module Aladtec
|
2
|
-
module Configuration
|
3
|
-
VALID_CONNECTION_KEYS = [:endpoint, :method, :user_agent].freeze
|
4
|
-
VALID_OPTIONS_KEYS = [:acc_id, :acc_key].freeze
|
5
|
-
VALID_CONFIG_KEYS = VALID_CONNECTION_KEYS + VALID_OPTIONS_KEYS
|
6
|
-
|
7
|
-
DEFAULT_ENDPOINT = "https://secure.emsmanager.net/api/index.php".freeze
|
8
|
-
DEFAULT_METHOD = :post
|
9
|
-
DEFAULT_USER_AGENT = "Aladtec API Ruby Gem #{Aladtec::VERSION}".freeze
|
10
|
-
|
11
|
-
DEFAULT_ACC_ID = nil
|
12
|
-
DEFAULT_ACC_KEY = nil
|
13
|
-
|
14
|
-
attr_accessor *VALID_CONFIG_KEYS
|
15
|
-
|
16
|
-
def self.extended(base)
|
17
|
-
base.reset
|
18
|
-
end
|
19
|
-
|
20
|
-
def reset
|
21
|
-
self.endpoint = DEFAULT_ENDPOINT
|
22
|
-
self.method = DEFAULT_METHOD
|
23
|
-
self.user_agent = DEFAULT_USER_AGENT
|
24
|
-
|
25
|
-
self.acc_id = DEFAULT_ACC_ID
|
26
|
-
self.acc_key = DEFAULT_ACC_KEY
|
27
|
-
end
|
28
|
-
|
29
|
-
def configure
|
30
|
-
yield self
|
31
|
-
end
|
32
|
-
|
33
|
-
def options
|
34
|
-
Hash[ * VALID_CONFIG_KEYS.map { |key| [key, public_send(key)] }.flatten ]
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require_relative File.join('..','spec_helper')
|
2
|
-
|
3
|
-
describe 'configuration' do
|
4
|
-
Aladtec::Configuration::VALID_CONFIG_KEYS.each do |key|
|
5
|
-
describe ".#{key}" do
|
6
|
-
it 'should return the default value' do
|
7
|
-
expect(Aladtec.public_send(key)).to eq(Aladtec::Configuration.const_get("DEFAULT_#{key.upcase}"))
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
describe '.configure' do
|
13
|
-
after(:each) do
|
14
|
-
Aladtec.reset
|
15
|
-
end
|
16
|
-
|
17
|
-
Aladtec::Configuration::VALID_CONFIG_KEYS.each do |key|
|
18
|
-
it "should set the #{key}" do
|
19
|
-
Aladtec.configure do |config|
|
20
|
-
config.public_send("#{key}=", key)
|
21
|
-
expect(Aladtec.public_send(key)).to eq(key)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?><results accessTime="2012-03-15T15:52:01Z" version="3.1.1"> <events> <event public="yes" type="5"> <title>Game Night</title> <description>Play games until the sun comes up!</description> <location>Public Library</location> <begin>2012-04-20</begin> <end>2012-04-21T15:30:00Z</end> <schedules/> </event> <event public="no" type="4"> <title>CPR Training</title> <description/> <location>Clinic</location> <begin>2012-05-01T01:30:00Z</begin> <end/> <schedules> <schedule id="1"/> <schedule id="3"/> <schedule id="4"/> </schedules> </event> </events></results>
|
@@ -1,21 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<results version="3.1.1" accessTime="2012-03-15T15:52:01Z">
|
3
|
-
<schedules>
|
4
|
-
<schedule id="5">
|
5
|
-
<positions>
|
6
|
-
<position id="1">
|
7
|
-
<member id="32" />
|
8
|
-
</position>
|
9
|
-
<position id="2">
|
10
|
-
<member id="64" />
|
11
|
-
</position>
|
12
|
-
</positions>
|
13
|
-
</schedule>
|
14
|
-
<schedule id="9">
|
15
|
-
<positions>
|
16
|
-
<position id="4" />
|
17
|
-
</positions>
|
18
|
-
</schedule>
|
19
|
-
</schedules>
|
20
|
-
</results>
|
21
|
-
|
@@ -1,27 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<results version="3.1.1" accessTime="2012-03-15T15:52:01Z">
|
3
|
-
<ranges>
|
4
|
-
<range>
|
5
|
-
<schedule id="5" />
|
6
|
-
<position id="1" />
|
7
|
-
<member id="42" />
|
8
|
-
<begin>2010-03-20T03:30:00Z</begin>
|
9
|
-
<end>2010-03-20T11:30:00Z</end>
|
10
|
-
</range>
|
11
|
-
<range>
|
12
|
-
<schedule id="5" />
|
13
|
-
<position id="2" />
|
14
|
-
<member id="42" />
|
15
|
-
<begin>2010-03-20T11:30:00Z</begin>
|
16
|
-
<end>2010-03-20T15:30:00Z</end>
|
17
|
-
</range>
|
18
|
-
<range>
|
19
|
-
<schedule id="6" />
|
20
|
-
<position id="9" />
|
21
|
-
<member id="32" />
|
22
|
-
<begin>2010-03-20T07:30:00Z</begin>
|
23
|
-
<end>2010-03-21T21:30:00Z</end>
|
24
|
-
</range>
|
25
|
-
</ranges>
|
26
|
-
</results>
|
27
|
-
|
@@ -1,57 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<results version="3.5.1" accessTime="20160303T15:52:01Z">
|
3
|
-
<schedules>
|
4
|
-
<schedule id="5">
|
5
|
-
<name>Sample BLS - 24/48</name>
|
6
|
-
<positions>
|
7
|
-
<position id="1">
|
8
|
-
<name>EMT</name>
|
9
|
-
</position>
|
10
|
-
<position id="2">
|
11
|
-
<name>Driver</name>
|
12
|
-
</position>
|
13
|
-
</positions>
|
14
|
-
</schedule>
|
15
|
-
<schedule id="6">
|
16
|
-
<name>Medic 5</name>
|
17
|
-
<positions>
|
18
|
-
<position id="9">
|
19
|
-
<name>Medic</name>
|
20
|
-
</position>
|
21
|
-
<position id="8">
|
22
|
-
<name>EMT</name>
|
23
|
-
</position>
|
24
|
-
</positions>
|
25
|
-
</schedule>
|
26
|
-
<schedule id="7">
|
27
|
-
<name>Wheelchair Van 12</name>
|
28
|
-
<positions>
|
29
|
-
<position id="14">
|
30
|
-
<name>Driver</name>
|
31
|
-
</position>
|
32
|
-
</positions>
|
33
|
-
</schedule>
|
34
|
-
<schedule id="8">
|
35
|
-
<name>Air Crew</name>
|
36
|
-
<positions>
|
37
|
-
<position id="10">
|
38
|
-
<name>Medic</name>
|
39
|
-
</position>
|
40
|
-
<position id="11">
|
41
|
-
<name>EMT</name>
|
42
|
-
</position>
|
43
|
-
<position id="12">
|
44
|
-
<name>Pilot</name>
|
45
|
-
</position>
|
46
|
-
</positions>
|
47
|
-
</schedule>
|
48
|
-
<schedule id="9">
|
49
|
-
<name>Dispatch</name>
|
50
|
-
<positions>
|
51
|
-
<position id="4">
|
52
|
-
<name>Dispatcher</name>
|
53
|
-
</position>
|
54
|
-
</positions>
|
55
|
-
</schedule>
|
56
|
-
</schedules>
|
57
|
-
</results>
|