flutter 0.1.0.pre.2
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/.overcommit.yml +8 -0
- data/.rubocop.yml +10 -0
- data/CHANGELOG.md +6 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/Gemfile +35 -0
- data/Guardfile +9 -0
- data/LICENSE.txt +21 -0
- data/README.md +134 -0
- data/Rakefile +24 -0
- data/TODO.md +30 -0
- data/integration_tests/minitest/grape_app/.gitignore +67 -0
- data/integration_tests/minitest/grape_app/.ruby-version +1 -0
- data/integration_tests/minitest/grape_app/Gemfile +17 -0
- data/integration_tests/minitest/grape_app/Gemfile.lock +89 -0
- data/integration_tests/minitest/grape_app/README.md +2 -0
- data/integration_tests/minitest/grape_app/Rakefile +9 -0
- data/integration_tests/minitest/grape_app/api/api.rb +34 -0
- data/integration_tests/minitest/grape_app/api/routes/api_helpers.rb +12 -0
- data/integration_tests/minitest/grape_app/api/routes/change_request/api.rb +69 -0
- data/integration_tests/minitest/grape_app/api/routes/change_request/response_entity.rb +18 -0
- data/integration_tests/minitest/grape_app/api/routes/event/api.rb +121 -0
- data/integration_tests/minitest/grape_app/api/routes/event/response_entity.rb +41 -0
- data/integration_tests/minitest/grape_app/api/routes/project/api.rb +59 -0
- data/integration_tests/minitest/grape_app/api/routes/project/response_entity.rb +13 -0
- data/integration_tests/minitest/grape_app/api/routes/property/api.rb +78 -0
- data/integration_tests/minitest/grape_app/api/routes/property/response_entity.rb +31 -0
- data/integration_tests/minitest/grape_app/api/routes/trackable_object/api.rb +64 -0
- data/integration_tests/minitest/grape_app/api/routes/trackable_object/response_entity.rb +24 -0
- data/integration_tests/minitest/grape_app/api/routes/tracking_spec/api.rb +88 -0
- data/integration_tests/minitest/grape_app/api/routes/tracking_spec/response_entity.rb +17 -0
- data/integration_tests/minitest/grape_app/api/routes/tracking_spec/spec_response.rb +19 -0
- data/integration_tests/minitest/grape_app/api/routes/user/api.rb +22 -0
- data/integration_tests/minitest/grape_app/api/routes/user/response_entity.rb +12 -0
- data/integration_tests/minitest/grape_app/app/app.rb +30 -0
- data/integration_tests/minitest/grape_app/app/change_request/endpoint.rb +24 -0
- data/integration_tests/minitest/grape_app/app/change_request/generate_system_changes.rb +25 -0
- data/integration_tests/minitest/grape_app/app/change_request/service.rb +79 -0
- data/integration_tests/minitest/grape_app/app/event/endpoint.rb +78 -0
- data/integration_tests/minitest/grape_app/app/event/service.rb +68 -0
- data/integration_tests/minitest/grape_app/app/event/validator.rb +108 -0
- data/integration_tests/minitest/grape_app/app/project/endpoint.rb +24 -0
- data/integration_tests/minitest/grape_app/app/project/service.rb +42 -0
- data/integration_tests/minitest/grape_app/app/property/endpoint.rb +39 -0
- data/integration_tests/minitest/grape_app/app/property/service.rb +56 -0
- data/integration_tests/minitest/grape_app/app/trackable_object/endpoint.rb +38 -0
- data/integration_tests/minitest/grape_app/app/trackable_object/service.rb +49 -0
- data/integration_tests/minitest/grape_app/app/trackable_object/validator.rb +40 -0
- data/integration_tests/minitest/grape_app/app/tracking_spec/endpoint.rb +58 -0
- data/integration_tests/minitest/grape_app/app/tracking_spec/expand_tracking_spec_events.rb +91 -0
- data/integration_tests/minitest/grape_app/app/tracking_spec/service.rb +51 -0
- data/integration_tests/minitest/grape_app/app/tracking_spec/validator.rb +61 -0
- data/integration_tests/minitest/grape_app/app/utils/errors/api_exceptions.rb +10 -0
- data/integration_tests/minitest/grape_app/app/utils/errors/service_exceptions.rb +12 -0
- data/integration_tests/minitest/grape_app/app/versioned_entity/entity.rb +110 -0
- data/integration_tests/minitest/grape_app/app/versioned_entity/service.rb +47 -0
- data/integration_tests/minitest/grape_app/app/versioned_entity/validator.rb +61 -0
- data/integration_tests/minitest/grape_app/app/versioned_entity_snapshot/entity.rb +32 -0
- data/integration_tests/minitest/grape_app/config/boot.rb +9 -0
- data/integration_tests/minitest/grape_app/config.ru +3 -0
- data/integration_tests/minitest/grape_app/db/proto/change_request.rb +10 -0
- data/integration_tests/minitest/grape_app/db/proto/common/doc.rb +86 -0
- data/integration_tests/minitest/grape_app/db/proto/event.rb +10 -0
- data/integration_tests/minitest/grape_app/db/proto/event_snapshot.rb +10 -0
- data/integration_tests/minitest/grape_app/db/proto/project.rb +21 -0
- data/integration_tests/minitest/grape_app/db/proto/property.rb +10 -0
- data/integration_tests/minitest/grape_app/db/proto/property_snapshot.rb +10 -0
- data/integration_tests/minitest/grape_app/db/proto/trackable_object.rb +10 -0
- data/integration_tests/minitest/grape_app/db/proto/trackable_object_snapshot.rb +10 -0
- data/integration_tests/minitest/grape_app/db/proto/tracking_spec.rb +10 -0
- data/integration_tests/minitest/grape_app/test/api/functional/event_test.rb +186 -0
- data/integration_tests/minitest/grape_app/test/api/functional/property_test.rb +197 -0
- data/integration_tests/minitest/grape_app/test/api/functional/trackable_object_test.rb +134 -0
- data/integration_tests/minitest/grape_app/test/api/functional/tracking_spec_test.rb +56 -0
- data/integration_tests/minitest/grape_app/test/api/functional/user_test.rb +24 -0
- data/integration_tests/minitest/grape_app/test/api/functional/versioned_entity_helper.rb +157 -0
- data/integration_tests/minitest/grape_app/test/fixtures/change_requests.rb +83 -0
- data/integration_tests/minitest/grape_app/test/fixtures/event_snapshots.rb +105 -0
- data/integration_tests/minitest/grape_app/test/fixtures/events.rb +58 -0
- data/integration_tests/minitest/grape_app/test/fixtures/properties.rb +66 -0
- data/integration_tests/minitest/grape_app/test/fixtures/property_snapshots.rb +124 -0
- data/integration_tests/minitest/grape_app/test/fixtures/sample_tracking_spec.json +125 -0
- data/integration_tests/minitest/grape_app/test/fixtures/trackable_objects.rb +58 -0
- data/integration_tests/minitest/grape_app/test/fixtures/trackable_objects_snapshots.rb +61 -0
- data/integration_tests/minitest/grape_app/test/fixtures/tracking_specs.rb +22 -0
- data/integration_tests/minitest/grape_app/test/test_helper.rb +15 -0
- data/lib/flutter/config.rb +24 -0
- data/lib/flutter/minitest.rb +83 -0
- data/lib/flutter/parser.rb +82 -0
- data/lib/flutter/persistence.rb +152 -0
- data/lib/flutter/rspec.rb +66 -0
- data/lib/flutter/tracker.rb +133 -0
- data/lib/flutter/version.rb +5 -0
- data/lib/flutter.rb +12 -0
- data/lib/minitest/flutter_plugin.rb +16 -0
- data/sig/flutter.rbs +4 -0
- metadata +187 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
require_relative '../api_helpers'
|
|
2
|
+
require_relative './response_entity'
|
|
3
|
+
require_relative '../tracking_spec/spec_response'
|
|
4
|
+
require_relative '../../../app/change_request/endpoint'
|
|
5
|
+
|
|
6
|
+
module Skee::API::Routes::ChangeRequest
|
|
7
|
+
class API < Grape::API
|
|
8
|
+
helpers Skee::API::Routes::APIHelpers
|
|
9
|
+
|
|
10
|
+
resource :change_requests do
|
|
11
|
+
desc 'List all Change Requests.'
|
|
12
|
+
get do
|
|
13
|
+
change_requests = Skee::App::ChangeRequest::Endpoint.list
|
|
14
|
+
present change_requests,
|
|
15
|
+
with: Skee::API::Routes::ChangeRequest::ResponseEntity
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
desc 'Retrieve a Change Request.'
|
|
19
|
+
params do
|
|
20
|
+
requires :id, type: String, desc: 'Change Request ID.'
|
|
21
|
+
end
|
|
22
|
+
get ':id' do
|
|
23
|
+
change_request = Skee::App::ChangeRequest::Endpoint.get(whitelisted_params)
|
|
24
|
+
present change_request,
|
|
25
|
+
with: Skee::API::Routes::ChangeRequest::ResponseEntity
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
desc 'Generate a full Tracking Spec with the changes in the Change Request.'
|
|
29
|
+
params do
|
|
30
|
+
requires :id, type: String, desc: 'Change Request ID.'
|
|
31
|
+
end
|
|
32
|
+
get ':id/full_spec' do
|
|
33
|
+
full_spec = Skee::App::ChangeRequest::Endpoint.full_spec(whitelisted_params)
|
|
34
|
+
present full_spec,
|
|
35
|
+
with: Skee::API::Routes::TrackingSpec::SpecResponse
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
desc 'Create a Change Request.'
|
|
39
|
+
params do
|
|
40
|
+
requires :name, type: String, desc: 'Change Request name.'
|
|
41
|
+
end
|
|
42
|
+
post do
|
|
43
|
+
new_change_request = Skee::App::ChangeRequest::Endpoint.create(whitelisted_params)
|
|
44
|
+
present new_change_request,
|
|
45
|
+
with: Skee::API::Routes::ChangeRequest::ResponseEntity
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
desc 'Update a Change Request.'
|
|
49
|
+
params do
|
|
50
|
+
requires :id, type: String, desc: 'Change Request ID.'
|
|
51
|
+
optional :name, type: String, desc: 'Change Request name.'
|
|
52
|
+
end
|
|
53
|
+
post ':id' do
|
|
54
|
+
updated_change_request = Skee::App::ChangeRequest::Endpoint.update(whitelisted_params)
|
|
55
|
+
present updated_change_request,
|
|
56
|
+
with: Skee::API::Routes::ChangeRequest::ResponseEntity
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
desc 'Delete a Change Request.'
|
|
60
|
+
params do
|
|
61
|
+
requires :id, type: String, desc: 'Change Request ID.'
|
|
62
|
+
end
|
|
63
|
+
delete ':id' do
|
|
64
|
+
Skee::App::ChangeRequest::Endpoint.delete(whitelisted_params)
|
|
65
|
+
status 200
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Skee
|
|
2
|
+
module API
|
|
3
|
+
module Routes
|
|
4
|
+
module ChangeRequest
|
|
5
|
+
class ResponseEntity < Grape::Entity
|
|
6
|
+
expose :id, documentation: { type: 'String', desc: 'Unique ID of a ChangeRequest.' }
|
|
7
|
+
expose :identifier, documentation: { type: 'String', desc: 'Identifier of a ChangeRequest.' }
|
|
8
|
+
expose :project_id, documentation: { type: 'String', desc: 'Project in which ChangeRequest created.' }
|
|
9
|
+
expose :base_tracking_spec_id, documentation: { type: 'String', desc: 'ID of the Tracking Spec on which changes are requested.' }
|
|
10
|
+
expose :status, documentation: { type: 'String', desc: 'Status of a ChangeRequest.' }
|
|
11
|
+
expose :name, documentation: { type: 'String', desc: 'Name of the ChangeRequest.' }
|
|
12
|
+
expose :description, documentation: { type: 'String', desc: 'Description of the ChangeRequest.' }
|
|
13
|
+
expose :change_set, documentation: { type: 'String', desc: 'Dictionary with list of IDs of updated and new entities.' }
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
require_relative '../api_helpers'
|
|
2
|
+
require_relative './response_entity'
|
|
3
|
+
require_relative '../../../app/event/endpoint'
|
|
4
|
+
module Skee::API::Routes::Event
|
|
5
|
+
class API < Grape::API
|
|
6
|
+
helpers Skee::API::Routes::APIHelpers
|
|
7
|
+
|
|
8
|
+
resource :events do
|
|
9
|
+
desc 'List all events.'
|
|
10
|
+
get do
|
|
11
|
+
events = Skee::App::Event::Endpoint.list
|
|
12
|
+
present events,
|
|
13
|
+
with: Skee::API::Routes::Event::ResponseEntity
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
desc 'Retrieve an event.'
|
|
17
|
+
params do
|
|
18
|
+
requires :id, type: String, desc: 'Event ID.'
|
|
19
|
+
optional :change_request_id, type: String, desc: 'Change request ID for the request.'
|
|
20
|
+
end
|
|
21
|
+
get ':id' do
|
|
22
|
+
event = Skee::App::Event::Endpoint.get(whitelisted_params)
|
|
23
|
+
present event,
|
|
24
|
+
with: Skee::API::Routes::Event::ResponseEntity
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
desc 'Create an event.'
|
|
28
|
+
params do
|
|
29
|
+
requires :change_request_id, type: String, desc: 'Change request ID for the request.'
|
|
30
|
+
requires :name, type: String, desc: 'Event name.'
|
|
31
|
+
optional :description, type: String, desc: 'Description of the event.'
|
|
32
|
+
requires :payload, type: Array do
|
|
33
|
+
requires :key, type: String, desc: 'Key of the event.'
|
|
34
|
+
requires :reference_entity_type, type: String, desc: 'Type of reference entity: trackable object or property'
|
|
35
|
+
requires :reference_entity_id, type: String, desc: 'ID of the reference entity.'
|
|
36
|
+
requires :is_array, type: Boolean, desc: 'Defines if the reference entity is an array or singular object'
|
|
37
|
+
requires :is_primary, type: Boolean, desc: 'Defines if the payload key is primary'
|
|
38
|
+
requires :selected_property_ids, type: Array[String], desc: 'Defines the array of property IDs that the key contains'
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
post do
|
|
42
|
+
new_event = Skee::App::Event::Endpoint.create(whitelisted_params)
|
|
43
|
+
present new_event,
|
|
44
|
+
with: Skee::API::Routes::Event::ResponseEntity
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
desc 'Update an event.'
|
|
48
|
+
params do
|
|
49
|
+
requires :id, type: String, desc: 'Event ID.'
|
|
50
|
+
requires :change_request_id, type: String, desc: 'Change request ID for the request.'
|
|
51
|
+
optional :name, type: String, desc: 'Event name.'
|
|
52
|
+
optional :description, type: String, desc: 'Description of the event.'
|
|
53
|
+
end
|
|
54
|
+
post ':id' do
|
|
55
|
+
updated_event = Skee::App::Event::Endpoint.update(whitelisted_params)
|
|
56
|
+
present updated_event,
|
|
57
|
+
with: Skee::API::Routes::Event::ResponseEntity
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
desc 'Add payload keys to an event.'
|
|
61
|
+
params do
|
|
62
|
+
requires :id, type: String, desc: 'Event ID.'
|
|
63
|
+
requires :change_request_id, type: String, desc: 'Change request ID for the request.'
|
|
64
|
+
requires :payload, type: Array do
|
|
65
|
+
requires :key, type: String, desc: 'Key of the event.'
|
|
66
|
+
requires :reference_entity_type, type: String, desc: 'Type of reference entity: trackable object or property'
|
|
67
|
+
requires :reference_entity_id, type: String, desc: 'ID of the reference entity.'
|
|
68
|
+
requires :is_array, type: Boolean, desc: 'Defines if the reference entity is an array or singular object'
|
|
69
|
+
requires :is_primary, type: Boolean, desc: 'Defines if the payload key is primary'
|
|
70
|
+
requires :selected_property_ids, type: Array[String], desc: 'Defines the array of property IDs that the key contains'
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
post ':id/add_payload' do
|
|
74
|
+
updated_event = Skee::App::Event::Endpoint.add_payload_keys(whitelisted_params)
|
|
75
|
+
present updated_event,
|
|
76
|
+
with: Skee::API::Routes::Event::ResponseEntity
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
desc 'Update payload for the given keys.'
|
|
80
|
+
params do
|
|
81
|
+
requires :id, type: String, desc: 'Event ID.'
|
|
82
|
+
requires :change_request_id, type: String, desc: 'Change request ID for the request.'
|
|
83
|
+
requires :payload, type: Array do
|
|
84
|
+
requires :key, type: String, desc: 'Key of the event.'
|
|
85
|
+
requires :reference_entity_type, type: String, desc: 'Type of reference entity: trackable object or property'
|
|
86
|
+
requires :reference_entity_id, type: String, desc: 'ID of the reference entity.'
|
|
87
|
+
requires :is_array, type: Boolean, desc: 'Defines if the reference entity is an array or singular object'
|
|
88
|
+
requires :is_primary, type: Boolean, desc: 'Defines if the payload key is primary'
|
|
89
|
+
requires :selected_property_ids, type: Array[String], desc: 'Defines the array of property IDs that the key contains'
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
post ':id/update_payload' do
|
|
93
|
+
updated_event = Skee::App::Event::Endpoint.update_payload_keys(whitelisted_params)
|
|
94
|
+
present updated_event,
|
|
95
|
+
with: Skee::API::Routes::Event::ResponseEntity
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
desc 'Remove keys from the payload.'
|
|
99
|
+
params do
|
|
100
|
+
requires :id, type: String, desc: 'Event ID.'
|
|
101
|
+
requires :payload_keys, type: Array, desc: 'List of keys to be removed'
|
|
102
|
+
requires :change_request_id, type: String, desc: 'Change request ID for the request.'
|
|
103
|
+
end
|
|
104
|
+
post ':id/remove_payload' do
|
|
105
|
+
updated_event = Skee::App::Event::Endpoint.remove_payload_keys(whitelisted_params)
|
|
106
|
+
present updated_event,
|
|
107
|
+
with: Skee::API::Routes::Event::ResponseEntity
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
desc 'Remove an event from the tracking spec.'
|
|
111
|
+
params do
|
|
112
|
+
requires :change_request_id, type: String, desc: 'Change request ID for the request.'
|
|
113
|
+
requires :id, type: String, desc: 'Event ID.'
|
|
114
|
+
end
|
|
115
|
+
post ':id/remove' do
|
|
116
|
+
Skee::App::Event::Endpoint.remove(whitelisted_params)
|
|
117
|
+
status 200
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
module Skee
|
|
2
|
+
module API
|
|
3
|
+
module Routes
|
|
4
|
+
module Event
|
|
5
|
+
class ResponseEntity < Grape::Entity
|
|
6
|
+
class EventPayload < Grape::Entity
|
|
7
|
+
expose :key, documentation: { type: 'String', desc: 'Key associated with the event.' }
|
|
8
|
+
expose :reference_entity_type, documentation: { type: 'String', desc: 'Reference Entity type, either trackable object or event' }
|
|
9
|
+
expose :reference_entity_id, documentation: { type: 'String', desc: 'Reference Entity ID' }
|
|
10
|
+
expose :is_array, documentation: { type: 'Boolean', desc: 'Defines if the response is an array or singular object.' }
|
|
11
|
+
expose :is_primary, documentation: { type: 'Boolean', desc: 'Defines if the entity is primary entity.'}
|
|
12
|
+
expose :selected_property_ids, documentation: { type: 'Array', desc: 'Defines the IDs of the sub-properties of the key'}
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class VersionedEntity < Grape::Entity
|
|
16
|
+
expose :id, documentation: { type: 'String', desc: 'Unique ID of a property.' }
|
|
17
|
+
end
|
|
18
|
+
class EntitySnapshot < Grape::Entity
|
|
19
|
+
expose :id, as: :snapshot_id, documentation: { type: 'String', desc: 'Unique ID of a event snapshot.' }
|
|
20
|
+
expose :change_request_id, documentation: { type: 'String', desc: 'Change request ID of the event snapshot.' }
|
|
21
|
+
expose :previous_snapshot_id, documentation: { type: 'String', desc: 'Snapshot ID of the previous version of the event.' }
|
|
22
|
+
expose :is_removed, safe: true, documentation: { type: 'String', desc: 'Flag to specify that event is removed from the tracking spec.' }
|
|
23
|
+
|
|
24
|
+
expose :name, documentation: { type: 'String', desc: 'Event name.' }
|
|
25
|
+
expose :description, documentation: { type: 'String', desc: 'Description of the event.' }
|
|
26
|
+
expose :payload, using: ResponseEntity::EventPayload
|
|
27
|
+
|
|
28
|
+
def payload
|
|
29
|
+
object.payload.map do |key, value|
|
|
30
|
+
value.merge(key: key)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
expose :versioned_entity, merge: true, using: ResponseEntity::VersionedEntity
|
|
36
|
+
expose :versioned_entity_snapshot, merge: true, using: ResponseEntity::EntitySnapshot
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
require_relative '../api_helpers'
|
|
2
|
+
require_relative './response_entity'
|
|
3
|
+
require_relative '../../../app/project/endpoint'
|
|
4
|
+
module Skee::API::Routes::Project
|
|
5
|
+
class API < Grape::API
|
|
6
|
+
helpers Skee::API::Routes::APIHelpers
|
|
7
|
+
|
|
8
|
+
resource :projects do
|
|
9
|
+
desc 'List all projects.'
|
|
10
|
+
get do
|
|
11
|
+
projects = Skee::App::Project::Endpoint.list
|
|
12
|
+
present projects,
|
|
13
|
+
with: Skee::API::Routes::Project::ResponseEntity
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
desc 'Retrieve a project.'
|
|
17
|
+
params do
|
|
18
|
+
requires :id, type: String, desc: 'project ID.'
|
|
19
|
+
end
|
|
20
|
+
get ':id' do
|
|
21
|
+
project = Skee::App::Project::Endpoint.get(whitelisted_params)
|
|
22
|
+
present project,
|
|
23
|
+
with: Skee::API::Routes::Project::ResponseEntity
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
desc 'Create a project.'
|
|
27
|
+
params do
|
|
28
|
+
requires :name, type: String, desc: 'project name.'
|
|
29
|
+
optional :description, type: String, desc: 'project description.'
|
|
30
|
+
end
|
|
31
|
+
post do
|
|
32
|
+
new_project = Skee::App::Project::Endpoint.create(whitelisted_params)
|
|
33
|
+
present new_project,
|
|
34
|
+
with: Skee::API::Routes::Project::ResponseEntity
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
desc 'Update a project.'
|
|
38
|
+
params do
|
|
39
|
+
requires :id, type: String, desc: 'project ID.'
|
|
40
|
+
optional :name, type: String, desc: 'project name.'
|
|
41
|
+
optional :description, type: String, desc: 'project description.'
|
|
42
|
+
end
|
|
43
|
+
post ':id' do
|
|
44
|
+
updated_project = Skee::App::Project::Endpoint.update(whitelisted_params)
|
|
45
|
+
present updated_project,
|
|
46
|
+
with: Skee::API::Routes::Project::ResponseEntity
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
desc 'Delete a project.'
|
|
50
|
+
params do
|
|
51
|
+
requires :id, type: String, desc: 'project ID.'
|
|
52
|
+
end
|
|
53
|
+
delete ':id' do
|
|
54
|
+
Skee::App::Project::Endpoint.delete(whitelisted_params)
|
|
55
|
+
status 200
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module Skee
|
|
2
|
+
module API
|
|
3
|
+
module Routes
|
|
4
|
+
module Project
|
|
5
|
+
class ResponseEntity < Grape::Entity
|
|
6
|
+
expose :id, documentation: { type: 'String', desc: 'Unique ID of a project.' }
|
|
7
|
+
expose :name, documentation: { type: 'String', desc: 'Name of the project.' }
|
|
8
|
+
expose :description, documentation: { type: 'String', desc: 'Description of the project.' }
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
require_relative '../api_helpers'
|
|
2
|
+
require_relative './response_entity'
|
|
3
|
+
require_relative '../../../app/property/endpoint'
|
|
4
|
+
module Skee::API::Routes::Property
|
|
5
|
+
class API < Grape::API
|
|
6
|
+
helpers Skee::API::Routes::APIHelpers
|
|
7
|
+
|
|
8
|
+
resource :properties do
|
|
9
|
+
desc 'List all properties.'
|
|
10
|
+
get do
|
|
11
|
+
properties = Skee::App::Property::Endpoint.list
|
|
12
|
+
present properties,
|
|
13
|
+
with: Skee::API::Routes::Property::ResponseEntity
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
desc 'Retrieve a property.'
|
|
17
|
+
params do
|
|
18
|
+
requires :id, type: String, desc: 'Property ID.'
|
|
19
|
+
optional :change_request_id, type: String, desc: 'Change request ID for the request.'
|
|
20
|
+
end
|
|
21
|
+
get ':id' do
|
|
22
|
+
property = Skee::App::Property::Endpoint.get(whitelisted_params)
|
|
23
|
+
present property,
|
|
24
|
+
with: Skee::API::Routes::Property::ResponseEntity
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
desc 'Create a property.'
|
|
28
|
+
params do
|
|
29
|
+
requires :change_request_id, type: String, desc: 'Change request ID for the request.'
|
|
30
|
+
requires :name, type: String, desc: 'Property name.'
|
|
31
|
+
requires :property_of, type: Symbol, values: [:trackable_object, :event], desc: 'Specifies whether property is that of a trackable object or event'
|
|
32
|
+
requires :data_type, type: String, desc: 'Data type of the property.'
|
|
33
|
+
requires :parent_reference_id, type: String, desc: 'ID of the trackable object the property belongs to.'
|
|
34
|
+
optional :description, type: String, desc: 'Description of the property.'
|
|
35
|
+
optional :is_nullable, type: Boolean, desc: 'Is this property nullable when being passed in an event?.'
|
|
36
|
+
optional :additional_instructions, type: String, desc: 'Additional instructions for the trackable object property.'
|
|
37
|
+
optional :data_format_id, type: String, desc: 'FK to the data format of the property.'
|
|
38
|
+
optional :regex_validation, type: String, desc: 'RegEx expression for validation of the property value sent.'
|
|
39
|
+
end
|
|
40
|
+
post do
|
|
41
|
+
new_property = Skee::App::Property::Endpoint.create(whitelisted_params)
|
|
42
|
+
present new_property,
|
|
43
|
+
with: Skee::API::Routes::Property::ResponseEntity
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
desc 'Update a trackable object property.'
|
|
47
|
+
params do
|
|
48
|
+
requires :change_request_id, type: String, desc: 'Change request ID for the request.'
|
|
49
|
+
optional :parent_reference_id, type: String, desc: 'ID of the trackable object the property belongs to.'
|
|
50
|
+
requires :id, type: String, desc: 'Property ID.'
|
|
51
|
+
optional :name, type: String, desc: 'Property name.'
|
|
52
|
+
optional :description, type: String, desc: 'Description of the property.'
|
|
53
|
+
optional :is_nullable, type: Boolean, desc: 'Is this property nullable when being passed in an event?.'
|
|
54
|
+
optional :data_type, type: String, desc: 'Data type of the property.'
|
|
55
|
+
optional :additional_instructions, type: String, desc: 'Additional instructions for the property.'
|
|
56
|
+
optional :data_format_id, type: String, desc: 'FK to the data format of the property.'
|
|
57
|
+
optional :regex_validation, type: String, desc: 'RegEx expression for validation of the property value sent.'
|
|
58
|
+
end
|
|
59
|
+
post ':id' do
|
|
60
|
+
updated_property = Skee::App::Property::Endpoint.update(whitelisted_params)
|
|
61
|
+
present updated_property,
|
|
62
|
+
with: Skee::API::Routes::Property::ResponseEntity
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
desc 'Remove a property from the tracking spec.'
|
|
66
|
+
params do
|
|
67
|
+
requires :change_request_id, type: String, desc: 'Change request ID for the request.'
|
|
68
|
+
optional :parent_reference_id, type: String, desc: 'ID of the trackable object the property belongs to.'
|
|
69
|
+
requires :id, type: String, desc: 'Property ID.'
|
|
70
|
+
end
|
|
71
|
+
post ':id/remove' do
|
|
72
|
+
updated_property = Skee::App::Property::Endpoint.remove(whitelisted_params)
|
|
73
|
+
present updated_property,
|
|
74
|
+
with: Skee::API::Routes::Property::ResponseEntity
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module Skee
|
|
2
|
+
module API
|
|
3
|
+
module Routes
|
|
4
|
+
module Property
|
|
5
|
+
class ResponseEntity < Grape::Entity
|
|
6
|
+
class VersionedEntity < Grape::Entity
|
|
7
|
+
expose :id, documentation: { type: 'String', desc: 'Unique ID of a property.' }
|
|
8
|
+
end
|
|
9
|
+
class EntitySnapshot < Grape::Entity
|
|
10
|
+
expose :id, as: :snapshot_id, documentation: { type: 'String', desc: 'Unique ID of a property snapshot.' }
|
|
11
|
+
expose :change_request_id, documentation: { type: 'String', desc: 'Change request ID of the property snapshot.' }
|
|
12
|
+
expose :previous_snapshot_id, documentation: { type: 'String', desc: 'Snapshot ID of the previous version of the property.' }
|
|
13
|
+
expose :is_removed, safe: true, documentation: { type: 'String', desc: 'Flag to specify that property is removed from the tracking spec.' }
|
|
14
|
+
|
|
15
|
+
expose :name, documentation: { type: 'String', desc: 'Name of the property.' }
|
|
16
|
+
expose :property_of, documentation: { type: 'String', desc: 'Specifies whether property is that of a trackable object or event' }
|
|
17
|
+
expose :data_type, documentation: { type: 'String', desc: 'Data type of the property.' }
|
|
18
|
+
expose :description, documentation: { type: 'String', desc: 'Description of the property.' }
|
|
19
|
+
expose :is_nullable, documentation: { type: 'Boolean', desc: 'Is this property nullable when being passed in an event?.' }
|
|
20
|
+
expose :additional_instructions, documentation: { type: 'String', desc: 'Additional instructions for the property.' }
|
|
21
|
+
expose :data_format_id, documentation: { type: 'String', desc: 'FK to the data format of the property.' }
|
|
22
|
+
expose :regex_validation, documentation: { type: 'String', desc: 'RegEx expression for validation of the property value sent.' }
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
expose :versioned_entity, merge: true, using: ResponseEntity::VersionedEntity
|
|
26
|
+
expose :versioned_entity_snapshot, merge: true, using: ResponseEntity::EntitySnapshot
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
require_relative '../api_helpers'
|
|
2
|
+
require_relative './response_entity'
|
|
3
|
+
require_relative '../../../app/trackable_object/endpoint'
|
|
4
|
+
module Skee::API::Routes::TrackableObject
|
|
5
|
+
class API < Grape::API
|
|
6
|
+
helpers Skee::API::Routes::APIHelpers
|
|
7
|
+
|
|
8
|
+
resource :trackable_objects do
|
|
9
|
+
desc 'List all trackable entitites.'
|
|
10
|
+
get do
|
|
11
|
+
trackable_objects = Skee::App::TrackableObject::Endpoint.list
|
|
12
|
+
present trackable_objects,
|
|
13
|
+
with: Skee::API::Routes::TrackableObject::ResponseEntity
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
desc 'Retrieve a trackable object.'
|
|
17
|
+
params do
|
|
18
|
+
requires :id, type: String, desc: 'Trackable object ID.'
|
|
19
|
+
optional :change_request_id, type: String, desc: 'Change request ID for the request.'
|
|
20
|
+
end
|
|
21
|
+
get ':id' do
|
|
22
|
+
trackable_object = Skee::App::TrackableObject::Endpoint.get(whitelisted_params)
|
|
23
|
+
present trackable_object,
|
|
24
|
+
with: Skee::API::Routes::TrackableObject::ResponseEntity
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
desc 'Create a trackable object.'
|
|
28
|
+
params do
|
|
29
|
+
requires :change_request_id, type: String, desc: 'Change request ID for the request.'
|
|
30
|
+
requires :name, type: String, desc: 'Trackable object name.'
|
|
31
|
+
optional :property_ids, type: Array[String], desc: 'Property IDs of a Trackable object.'
|
|
32
|
+
end
|
|
33
|
+
post do
|
|
34
|
+
new_trackable_object = Skee::App::TrackableObject::Endpoint.create(whitelisted_params)
|
|
35
|
+
present new_trackable_object,
|
|
36
|
+
with: Skee::API::Routes::TrackableObject::ResponseEntity
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
desc 'Update a trackable object.'
|
|
40
|
+
params do
|
|
41
|
+
requires :change_request_id, type: String, desc: 'Change request ID for the request.'
|
|
42
|
+
requires :id, type: String, desc: 'Trackable object ID.'
|
|
43
|
+
optional :name, type: String, desc: 'Trackable object name.'
|
|
44
|
+
optional :property_ids, type: Array[String], desc: 'Property IDs of a Trackable object.'
|
|
45
|
+
end
|
|
46
|
+
post ':id' do
|
|
47
|
+
updated_trackable_object = Skee::App::TrackableObject::Endpoint.update(whitelisted_params)
|
|
48
|
+
present updated_trackable_object,
|
|
49
|
+
with: Skee::API::Routes::TrackableObject::ResponseEntity
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
desc 'Remove a trackable object from the tracking spec.'
|
|
53
|
+
params do
|
|
54
|
+
requires :change_request_id, type: String, desc: 'Change request ID for the request.'
|
|
55
|
+
requires :id, type: String, desc: 'Trackable object ID.'
|
|
56
|
+
end
|
|
57
|
+
post ':id/remove' do
|
|
58
|
+
updated_trackable_object = Skee::App::TrackableObject::Endpoint.remove(whitelisted_params)
|
|
59
|
+
present updated_trackable_object,
|
|
60
|
+
with: Skee::API::Routes::TrackableObject::ResponseEntity
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Skee
|
|
2
|
+
module API
|
|
3
|
+
module Routes
|
|
4
|
+
module TrackableObject
|
|
5
|
+
class ResponseEntity < Grape::Entity
|
|
6
|
+
class VersionedEntity < Grape::Entity
|
|
7
|
+
expose :id, documentation: { type: 'String', desc: 'Unique ID of a trackable_object.' }
|
|
8
|
+
end
|
|
9
|
+
class EntitySnapshot < Grape::Entity
|
|
10
|
+
expose :id, as: :snapshot_id, documentation: { type: 'String', desc: 'Unique ID of a trackable_object.' }
|
|
11
|
+
expose :name, documentation: { type: 'String', desc: 'Name of the trackable object.' }
|
|
12
|
+
expose :change_request_id, documentation: { type: 'String', desc: 'Change request ID for the trackable object.' }
|
|
13
|
+
expose :previous_snapshot_id, documentation: { type: 'String', desc: 'Trackable object ID of the previous version of this trackable object.' }
|
|
14
|
+
expose :is_removed, safe: true, documentation: { type: 'String', desc: 'Marker to specify that trackable object is removed from the tracking spec.' }
|
|
15
|
+
expose :property_ids, documentation: { type: 'Array', desc: 'Property IDs of a trackable object.' }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
expose :versioned_entity, merge: true, using: ResponseEntity::VersionedEntity
|
|
19
|
+
expose :versioned_entity_snapshot, merge: true, using: ResponseEntity::EntitySnapshot
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
require_relative '../api_helpers'
|
|
2
|
+
require_relative './response_entity'
|
|
3
|
+
require_relative './spec_response'
|
|
4
|
+
require_relative '../../../app/tracking_spec/endpoint'
|
|
5
|
+
|
|
6
|
+
module Skee::API::Routes::TrackingSpec
|
|
7
|
+
class API < Grape::API
|
|
8
|
+
helpers Skee::API::Routes::APIHelpers
|
|
9
|
+
|
|
10
|
+
resource :tracking_specs do
|
|
11
|
+
desc 'List all Tracking Specs.'
|
|
12
|
+
get do
|
|
13
|
+
tracking_specs = Skee::App::TrackingSpec::Endpoint.list
|
|
14
|
+
present tracking_specs,
|
|
15
|
+
with: Skee::API::Routes::TrackingSpec::ResponseEntity
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
desc 'Retrieve a Tracking Spec.'
|
|
19
|
+
params do
|
|
20
|
+
requires :id, type: String, desc: 'Tracking Spec ID.'
|
|
21
|
+
end
|
|
22
|
+
get ':id' do
|
|
23
|
+
tracking_spec = Skee::App::TrackingSpec::Endpoint.get(whitelisted_params)
|
|
24
|
+
present tracking_spec,
|
|
25
|
+
with: Skee::API::Routes::TrackingSpec::ResponseEntity
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
desc 'Generate a full Tracking Spec.'
|
|
29
|
+
params do
|
|
30
|
+
requires :id, type: String, desc: 'Tracking Spec ID.'
|
|
31
|
+
end
|
|
32
|
+
get ':id/full_spec' do
|
|
33
|
+
full_spec = Skee::App::TrackingSpec::Endpoint.full_spec(whitelisted_params)
|
|
34
|
+
present full_spec,
|
|
35
|
+
with: Skee::API::Routes::TrackingSpec::SpecResponse
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
desc 'Create a Tracking Spec.'
|
|
39
|
+
params do
|
|
40
|
+
requires :name, type: String, desc: 'Name of the Tracking Spec.'
|
|
41
|
+
optional :version_identifier, type: String, desc: 'Identifier of a Tracking Spec.'
|
|
42
|
+
optional :project_id, type: String, desc: 'Project in which Tracking Spec created.'
|
|
43
|
+
optional :change_request_id, type: String, desc: 'Change request from which Tracking Spec was created.'
|
|
44
|
+
optional :status, type: String, desc: 'Status of a Tracking Spec.'
|
|
45
|
+
optional :event_ids, type: Array[String], desc: 'Array of event IDs.'
|
|
46
|
+
end
|
|
47
|
+
post do
|
|
48
|
+
new_tracking_spec = Skee::App::TrackingSpec::Endpoint.create(whitelisted_params)
|
|
49
|
+
present new_tracking_spec,
|
|
50
|
+
with: Skee::API::Routes::TrackingSpec::ResponseEntity
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
desc 'Update a Tracking Spec.'
|
|
54
|
+
params do
|
|
55
|
+
requires :id, type: String, desc: 'Tracking Spec ID.'
|
|
56
|
+
optional :name, type: String, desc: 'Name of the Tracking Spec.'
|
|
57
|
+
optional :version_identifier, type: String, desc: 'Identifier of a Tracking Spec.'
|
|
58
|
+
optional :project_id, type: String, desc: 'Project in which Tracking Spec created.'
|
|
59
|
+
optional :change_request_id, type: String, desc: 'Change request from which Tracking Spec was created.'
|
|
60
|
+
optional :status, type: String, desc: 'Status of a Tracking Spec.'
|
|
61
|
+
optional :event_ids, type: Array[String], desc: 'Array of event IDs.'
|
|
62
|
+
end
|
|
63
|
+
post ':id' do
|
|
64
|
+
updated_tracking_spec = Skee::App::TrackingSpec::Endpoint.update(whitelisted_params)
|
|
65
|
+
present updated_tracking_spec,
|
|
66
|
+
with: Skee::API::Routes::TrackingSpec::ResponseEntity
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
desc 'Delete a Tracking Spec.'
|
|
70
|
+
params do
|
|
71
|
+
requires :id, type: String, desc: 'Tracking Spec ID.'
|
|
72
|
+
end
|
|
73
|
+
delete ':id' do
|
|
74
|
+
Skee::App::TrackingSpec::Endpoint.delete(whitelisted_params)
|
|
75
|
+
status 200
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
desc 'Expand a Tracking Spec'
|
|
79
|
+
params do
|
|
80
|
+
requires :id, type: String, desc: 'Tracking Spec ID.'
|
|
81
|
+
requires :change_request_id, type: String, desc: 'Change request from which Tracking Spec was created.'
|
|
82
|
+
end
|
|
83
|
+
get ':id/expand' do
|
|
84
|
+
Skee::App::TrackingSpec::Endpoint.expand(whitelisted_params)
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Skee
|
|
2
|
+
module API
|
|
3
|
+
module Routes
|
|
4
|
+
module TrackingSpec
|
|
5
|
+
class ResponseEntity < Grape::Entity
|
|
6
|
+
expose :id, documentation: { type: 'String', desc: 'Unique ID of a Tracking Spec.' }
|
|
7
|
+
expose :version_identifier, documentation: { type: 'String', desc: 'Identifier of a Tracking Spec.' }
|
|
8
|
+
expose :project_id, documentation: { type: 'String', desc: 'Project in which Tracking Spec created.' }
|
|
9
|
+
expose :change_request_id, documentation: { type: 'String', desc: 'Change request from which Tracking Spec was created.' }
|
|
10
|
+
expose :status, documentation: { type: 'String', desc: 'Status of a Tracking Spec.' }
|
|
11
|
+
expose :name, documentation: { type: 'String', desc: 'Name of the Tracking Spec.' }
|
|
12
|
+
expose :event_ids, documentation: { type: 'String', desc: 'Dictionary with list of IDs of all entities comprising the tracking spec.' }
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require_relative '../event/response_entity'
|
|
2
|
+
require_relative '../trackable_object/response_entity'
|
|
3
|
+
require_relative '../property/response_entity'
|
|
4
|
+
|
|
5
|
+
module Skee
|
|
6
|
+
module API
|
|
7
|
+
module Routes
|
|
8
|
+
module TrackingSpec
|
|
9
|
+
class SpecResponse < Grape::Entity
|
|
10
|
+
expose :id, documentation: { type: 'String', desc: 'Unique ID of a tracking spec.' }
|
|
11
|
+
expose :version_identifier, documentation: { type: 'String', desc: 'Identifier of a Tracking Spec.' }
|
|
12
|
+
expose :name, documentation: { type: 'String', desc: 'Name of the tracking spec.' }
|
|
13
|
+
expose :change_request_id, documentation: { type: 'String', desc: 'Change request ID for the tracking spec.' }
|
|
14
|
+
expose :events, with: Skee::API::Routes::Event::ResponseEntity
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|