flutter 0.1.0.pre.2 → 0.2.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 +4 -4
- data/CHANGELOG.md +29 -5
- data/Gemfile +1 -0
- data/README.md +62 -2
- data/Rakefile +35 -1
- data/codecov.yml +13 -0
- data/lib/flutter/minitest.rb +6 -8
- data/lib/flutter/parser.rb +18 -16
- data/lib/flutter/persistence.rb +51 -5
- data/lib/flutter/rspec.rb +7 -7
- data/lib/flutter/tracker.rb +48 -5
- data/lib/flutter/version.rb +1 -1
- metadata +21 -95
- data/integration_tests/minitest/grape_app/.gitignore +0 -67
- data/integration_tests/minitest/grape_app/.ruby-version +0 -1
- data/integration_tests/minitest/grape_app/Gemfile +0 -17
- data/integration_tests/minitest/grape_app/Gemfile.lock +0 -89
- data/integration_tests/minitest/grape_app/README.md +0 -2
- data/integration_tests/minitest/grape_app/Rakefile +0 -9
- data/integration_tests/minitest/grape_app/api/api.rb +0 -34
- data/integration_tests/minitest/grape_app/api/routes/api_helpers.rb +0 -12
- data/integration_tests/minitest/grape_app/api/routes/change_request/api.rb +0 -69
- data/integration_tests/minitest/grape_app/api/routes/change_request/response_entity.rb +0 -18
- data/integration_tests/minitest/grape_app/api/routes/event/api.rb +0 -121
- data/integration_tests/minitest/grape_app/api/routes/event/response_entity.rb +0 -41
- data/integration_tests/minitest/grape_app/api/routes/project/api.rb +0 -59
- data/integration_tests/minitest/grape_app/api/routes/project/response_entity.rb +0 -13
- data/integration_tests/minitest/grape_app/api/routes/property/api.rb +0 -78
- data/integration_tests/minitest/grape_app/api/routes/property/response_entity.rb +0 -31
- data/integration_tests/minitest/grape_app/api/routes/trackable_object/api.rb +0 -64
- data/integration_tests/minitest/grape_app/api/routes/trackable_object/response_entity.rb +0 -24
- data/integration_tests/minitest/grape_app/api/routes/tracking_spec/api.rb +0 -88
- data/integration_tests/minitest/grape_app/api/routes/tracking_spec/response_entity.rb +0 -17
- data/integration_tests/minitest/grape_app/api/routes/tracking_spec/spec_response.rb +0 -19
- data/integration_tests/minitest/grape_app/api/routes/user/api.rb +0 -22
- data/integration_tests/minitest/grape_app/api/routes/user/response_entity.rb +0 -12
- data/integration_tests/minitest/grape_app/app/app.rb +0 -30
- data/integration_tests/minitest/grape_app/app/change_request/endpoint.rb +0 -24
- data/integration_tests/minitest/grape_app/app/change_request/generate_system_changes.rb +0 -25
- data/integration_tests/minitest/grape_app/app/change_request/service.rb +0 -79
- data/integration_tests/minitest/grape_app/app/event/endpoint.rb +0 -78
- data/integration_tests/minitest/grape_app/app/event/service.rb +0 -68
- data/integration_tests/minitest/grape_app/app/event/validator.rb +0 -108
- data/integration_tests/minitest/grape_app/app/project/endpoint.rb +0 -24
- data/integration_tests/minitest/grape_app/app/project/service.rb +0 -42
- data/integration_tests/minitest/grape_app/app/property/endpoint.rb +0 -39
- data/integration_tests/minitest/grape_app/app/property/service.rb +0 -56
- data/integration_tests/minitest/grape_app/app/trackable_object/endpoint.rb +0 -38
- data/integration_tests/minitest/grape_app/app/trackable_object/service.rb +0 -49
- data/integration_tests/minitest/grape_app/app/trackable_object/validator.rb +0 -40
- data/integration_tests/minitest/grape_app/app/tracking_spec/endpoint.rb +0 -58
- data/integration_tests/minitest/grape_app/app/tracking_spec/expand_tracking_spec_events.rb +0 -91
- data/integration_tests/minitest/grape_app/app/tracking_spec/service.rb +0 -51
- data/integration_tests/minitest/grape_app/app/tracking_spec/validator.rb +0 -61
- data/integration_tests/minitest/grape_app/app/utils/errors/api_exceptions.rb +0 -10
- data/integration_tests/minitest/grape_app/app/utils/errors/service_exceptions.rb +0 -12
- data/integration_tests/minitest/grape_app/app/versioned_entity/entity.rb +0 -110
- data/integration_tests/minitest/grape_app/app/versioned_entity/service.rb +0 -47
- data/integration_tests/minitest/grape_app/app/versioned_entity/validator.rb +0 -61
- data/integration_tests/minitest/grape_app/app/versioned_entity_snapshot/entity.rb +0 -32
- data/integration_tests/minitest/grape_app/config/boot.rb +0 -9
- data/integration_tests/minitest/grape_app/config.ru +0 -3
- data/integration_tests/minitest/grape_app/db/proto/change_request.rb +0 -10
- data/integration_tests/minitest/grape_app/db/proto/common/doc.rb +0 -86
- data/integration_tests/minitest/grape_app/db/proto/event.rb +0 -10
- data/integration_tests/minitest/grape_app/db/proto/event_snapshot.rb +0 -10
- data/integration_tests/minitest/grape_app/db/proto/project.rb +0 -21
- data/integration_tests/minitest/grape_app/db/proto/property.rb +0 -10
- data/integration_tests/minitest/grape_app/db/proto/property_snapshot.rb +0 -10
- data/integration_tests/minitest/grape_app/db/proto/trackable_object.rb +0 -10
- data/integration_tests/minitest/grape_app/db/proto/trackable_object_snapshot.rb +0 -10
- data/integration_tests/minitest/grape_app/db/proto/tracking_spec.rb +0 -10
- data/integration_tests/minitest/grape_app/test/api/functional/event_test.rb +0 -186
- data/integration_tests/minitest/grape_app/test/api/functional/property_test.rb +0 -197
- data/integration_tests/minitest/grape_app/test/api/functional/trackable_object_test.rb +0 -134
- data/integration_tests/minitest/grape_app/test/api/functional/tracking_spec_test.rb +0 -56
- data/integration_tests/minitest/grape_app/test/api/functional/user_test.rb +0 -24
- data/integration_tests/minitest/grape_app/test/api/functional/versioned_entity_helper.rb +0 -157
- data/integration_tests/minitest/grape_app/test/fixtures/change_requests.rb +0 -83
- data/integration_tests/minitest/grape_app/test/fixtures/event_snapshots.rb +0 -105
- data/integration_tests/minitest/grape_app/test/fixtures/events.rb +0 -58
- data/integration_tests/minitest/grape_app/test/fixtures/properties.rb +0 -66
- data/integration_tests/minitest/grape_app/test/fixtures/property_snapshots.rb +0 -124
- data/integration_tests/minitest/grape_app/test/fixtures/sample_tracking_spec.json +0 -125
- data/integration_tests/minitest/grape_app/test/fixtures/trackable_objects.rb +0 -58
- data/integration_tests/minitest/grape_app/test/fixtures/trackable_objects_snapshots.rb +0 -61
- data/integration_tests/minitest/grape_app/test/fixtures/tracking_specs.rb +0 -22
- data/integration_tests/minitest/grape_app/test/test_helper.rb +0 -15
|
@@ -1,41 +0,0 @@
|
|
|
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
|
|
@@ -1,59 +0,0 @@
|
|
|
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
|
|
@@ -1,13 +0,0 @@
|
|
|
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
|
|
@@ -1,78 +0,0 @@
|
|
|
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
|
|
@@ -1,31 +0,0 @@
|
|
|
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
|
|
@@ -1,64 +0,0 @@
|
|
|
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
|
|
@@ -1,24 +0,0 @@
|
|
|
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
|
|
@@ -1,88 +0,0 @@
|
|
|
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
|
|
@@ -1,17 +0,0 @@
|
|
|
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
|
|
@@ -1,19 +0,0 @@
|
|
|
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
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
require_relative '../api_helpers'
|
|
2
|
-
require_relative './response_entity'
|
|
3
|
-
require 'ostruct'
|
|
4
|
-
|
|
5
|
-
module Skee::API::Routes::User
|
|
6
|
-
class API < Grape::API
|
|
7
|
-
helpers Skee::API::Routes::APIHelpers
|
|
8
|
-
|
|
9
|
-
resource :users do
|
|
10
|
-
desc 'Authenticate a user'
|
|
11
|
-
params do
|
|
12
|
-
requires :username, type: String, desc: 'username of the user'
|
|
13
|
-
requires :password, type: String, desc: 'password of the user'
|
|
14
|
-
end
|
|
15
|
-
post ':authenticate' do
|
|
16
|
-
response = OpenStruct.new({ username: params[:username], access_token: '123' })
|
|
17
|
-
present response,
|
|
18
|
-
with: Skee::API::Routes::User::ResponseEntity
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
module Skee
|
|
2
|
-
module API
|
|
3
|
-
module Routes
|
|
4
|
-
module User
|
|
5
|
-
class ResponseEntity < Grape::Entity
|
|
6
|
-
expose :username, documentation: {type: 'String', desc: 'Username of the user'}
|
|
7
|
-
expose :access_token, documentation: {type: 'String', desc: 'AccessToken for the user'}
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
require_relative './utils/errors/api_exceptions'
|
|
2
|
-
require_relative './utils/errors/service_exceptions'
|
|
3
|
-
|
|
4
|
-
require_relative '../db/proto/project'
|
|
5
|
-
require_relative '../db/proto/change_request'
|
|
6
|
-
|
|
7
|
-
require_relative '../db/proto/event'
|
|
8
|
-
require_relative '../db/proto/event_snapshot'
|
|
9
|
-
require_relative '../db/proto/trackable_object'
|
|
10
|
-
require_relative '../db/proto/trackable_object_snapshot'
|
|
11
|
-
require_relative '../db/proto/property'
|
|
12
|
-
require_relative '../db/proto/property_snapshot'
|
|
13
|
-
|
|
14
|
-
module Skee
|
|
15
|
-
module App
|
|
16
|
-
DB = Skee::DB::Proto
|
|
17
|
-
DB_MAPPING_ENTITY = {
|
|
18
|
-
change_request: Skee::DB::Proto::ChangeRequest,
|
|
19
|
-
event: Skee::DB::Proto::Event,
|
|
20
|
-
project: Skee::DB::Proto::Project,
|
|
21
|
-
trackable_object: Skee::DB::Proto::TrackableObject,
|
|
22
|
-
property: Skee::DB::Proto::Property,
|
|
23
|
-
}.freeze
|
|
24
|
-
DB_MAPPING_ENTITY_SNAPSHOT = {
|
|
25
|
-
event: Skee::DB::Proto::EventSnapshot,
|
|
26
|
-
trackable_object: Skee::DB::Proto::TrackableObjectSnapshot,
|
|
27
|
-
property: Skee::DB::Proto::PropertySnapshot,
|
|
28
|
-
}.freeze
|
|
29
|
-
end
|
|
30
|
-
end
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
require_relative './service'
|
|
2
|
-
module Skee::App::ChangeRequest
|
|
3
|
-
class Endpoint
|
|
4
|
-
def self.list
|
|
5
|
-
Service.list
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
def self.get(params)
|
|
9
|
-
Service.get(params)
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def self.create(params)
|
|
13
|
-
Service.create(params)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def self.update(params)
|
|
17
|
-
Service.update(params)
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def self.delete(params)
|
|
21
|
-
Service.delete(params)
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
module Skee
|
|
2
|
-
module App
|
|
3
|
-
module ChangeRequest
|
|
4
|
-
class GenerateSystemChanges
|
|
5
|
-
def initialize(change_request)
|
|
6
|
-
@change_request = change_request
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def call
|
|
10
|
-
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
private
|
|
14
|
-
|
|
15
|
-
def create_new_change
|
|
16
|
-
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def update_existing_change
|
|
20
|
-
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
require_relative '../../db/proto/change_request'
|
|
2
|
-
module Skee
|
|
3
|
-
module App
|
|
4
|
-
module ChangeRequest
|
|
5
|
-
class Service
|
|
6
|
-
DB = Skee::DB::Proto
|
|
7
|
-
|
|
8
|
-
def self.list
|
|
9
|
-
DB::ChangeRequest.all
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def self.get(params)
|
|
13
|
-
DB::ChangeRequest.find(params[:id])
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def self.create(params)
|
|
17
|
-
# add any validation or filtering logic here to
|
|
18
|
-
# derive fields from params
|
|
19
|
-
fields = {
|
|
20
|
-
identifier: params[:identifier],
|
|
21
|
-
project_id: params[:project_id],
|
|
22
|
-
base_tracking_spec_id: params[:base_tracking_spec_id],
|
|
23
|
-
status: params[:status],
|
|
24
|
-
name: params[:name],
|
|
25
|
-
description: params[:description],
|
|
26
|
-
change_set: params[:change_set]
|
|
27
|
-
}
|
|
28
|
-
DB::ChangeRequest.create(fields)
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def self.update(params)
|
|
32
|
-
# send valid fields excluding id
|
|
33
|
-
fields = {
|
|
34
|
-
identifier: params[:identifier],
|
|
35
|
-
project_id: params[:project_id],
|
|
36
|
-
base_tracking_spec_id: params[:base_tracking_spec_id],
|
|
37
|
-
status: params[:status],
|
|
38
|
-
name: params[:name],
|
|
39
|
-
description: params[:description],
|
|
40
|
-
change_set: params[:change_set]
|
|
41
|
-
}.compact
|
|
42
|
-
change_request = DB::ChangeRequest.find(params[:id])
|
|
43
|
-
change_request.update(fields)
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def self.update_change_set(params)
|
|
47
|
-
change_request = DB::ChangeRequest.find(params[:id])
|
|
48
|
-
existing_change_set = change_request.change_set
|
|
49
|
-
params[:changes].each do |entity, change_hash|
|
|
50
|
-
existing_change_set[entity] ||= {}
|
|
51
|
-
change_hash.each do |prev_id, new_id|
|
|
52
|
-
if prev_id
|
|
53
|
-
existing_change_set[entity][prev_id] = new_id
|
|
54
|
-
else
|
|
55
|
-
existing_change_set[entity][nil] ||= []
|
|
56
|
-
existing_change_set[entity][nil] << new_id
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def self.remove_from_change_set(id:, entity:, entity_id:)
|
|
63
|
-
change_request = DB::ChangeRequest.find(id)
|
|
64
|
-
existing_change_set = change_request.change_set
|
|
65
|
-
if existing_change_set[entity].values.include?(entity_id)
|
|
66
|
-
existing_change_set[entity].delete_if {|_,value| value == entity_id}
|
|
67
|
-
elsif existing_change_set[entity][nil].include?(entity_id)
|
|
68
|
-
existing_change_set[entity][nil].delete(entity_id)
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def self.delete(params)
|
|
73
|
-
change_request = DB::ChangeRequest.find(params[:id])
|
|
74
|
-
change_request.delete
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
end
|