flutter 0.1.0.pre.2 → 0.1.0.pre.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -1
  3. data/README.md +3 -1
  4. data/lib/flutter/persistence.rb +51 -5
  5. data/lib/flutter/tracker.rb +47 -5
  6. data/lib/flutter/version.rb +1 -1
  7. metadata +16 -91
  8. data/integration_tests/minitest/grape_app/.gitignore +0 -67
  9. data/integration_tests/minitest/grape_app/.ruby-version +0 -1
  10. data/integration_tests/minitest/grape_app/Gemfile +0 -17
  11. data/integration_tests/minitest/grape_app/Gemfile.lock +0 -89
  12. data/integration_tests/minitest/grape_app/README.md +0 -2
  13. data/integration_tests/minitest/grape_app/Rakefile +0 -9
  14. data/integration_tests/minitest/grape_app/api/api.rb +0 -34
  15. data/integration_tests/minitest/grape_app/api/routes/api_helpers.rb +0 -12
  16. data/integration_tests/minitest/grape_app/api/routes/change_request/api.rb +0 -69
  17. data/integration_tests/minitest/grape_app/api/routes/change_request/response_entity.rb +0 -18
  18. data/integration_tests/minitest/grape_app/api/routes/event/api.rb +0 -121
  19. data/integration_tests/minitest/grape_app/api/routes/event/response_entity.rb +0 -41
  20. data/integration_tests/minitest/grape_app/api/routes/project/api.rb +0 -59
  21. data/integration_tests/minitest/grape_app/api/routes/project/response_entity.rb +0 -13
  22. data/integration_tests/minitest/grape_app/api/routes/property/api.rb +0 -78
  23. data/integration_tests/minitest/grape_app/api/routes/property/response_entity.rb +0 -31
  24. data/integration_tests/minitest/grape_app/api/routes/trackable_object/api.rb +0 -64
  25. data/integration_tests/minitest/grape_app/api/routes/trackable_object/response_entity.rb +0 -24
  26. data/integration_tests/minitest/grape_app/api/routes/tracking_spec/api.rb +0 -88
  27. data/integration_tests/minitest/grape_app/api/routes/tracking_spec/response_entity.rb +0 -17
  28. data/integration_tests/minitest/grape_app/api/routes/tracking_spec/spec_response.rb +0 -19
  29. data/integration_tests/minitest/grape_app/api/routes/user/api.rb +0 -22
  30. data/integration_tests/minitest/grape_app/api/routes/user/response_entity.rb +0 -12
  31. data/integration_tests/minitest/grape_app/app/app.rb +0 -30
  32. data/integration_tests/minitest/grape_app/app/change_request/endpoint.rb +0 -24
  33. data/integration_tests/minitest/grape_app/app/change_request/generate_system_changes.rb +0 -25
  34. data/integration_tests/minitest/grape_app/app/change_request/service.rb +0 -79
  35. data/integration_tests/minitest/grape_app/app/event/endpoint.rb +0 -78
  36. data/integration_tests/minitest/grape_app/app/event/service.rb +0 -68
  37. data/integration_tests/minitest/grape_app/app/event/validator.rb +0 -108
  38. data/integration_tests/minitest/grape_app/app/project/endpoint.rb +0 -24
  39. data/integration_tests/minitest/grape_app/app/project/service.rb +0 -42
  40. data/integration_tests/minitest/grape_app/app/property/endpoint.rb +0 -39
  41. data/integration_tests/minitest/grape_app/app/property/service.rb +0 -56
  42. data/integration_tests/minitest/grape_app/app/trackable_object/endpoint.rb +0 -38
  43. data/integration_tests/minitest/grape_app/app/trackable_object/service.rb +0 -49
  44. data/integration_tests/minitest/grape_app/app/trackable_object/validator.rb +0 -40
  45. data/integration_tests/minitest/grape_app/app/tracking_spec/endpoint.rb +0 -58
  46. data/integration_tests/minitest/grape_app/app/tracking_spec/expand_tracking_spec_events.rb +0 -91
  47. data/integration_tests/minitest/grape_app/app/tracking_spec/service.rb +0 -51
  48. data/integration_tests/minitest/grape_app/app/tracking_spec/validator.rb +0 -61
  49. data/integration_tests/minitest/grape_app/app/utils/errors/api_exceptions.rb +0 -10
  50. data/integration_tests/minitest/grape_app/app/utils/errors/service_exceptions.rb +0 -12
  51. data/integration_tests/minitest/grape_app/app/versioned_entity/entity.rb +0 -110
  52. data/integration_tests/minitest/grape_app/app/versioned_entity/service.rb +0 -47
  53. data/integration_tests/minitest/grape_app/app/versioned_entity/validator.rb +0 -61
  54. data/integration_tests/minitest/grape_app/app/versioned_entity_snapshot/entity.rb +0 -32
  55. data/integration_tests/minitest/grape_app/config/boot.rb +0 -9
  56. data/integration_tests/minitest/grape_app/config.ru +0 -3
  57. data/integration_tests/minitest/grape_app/db/proto/change_request.rb +0 -10
  58. data/integration_tests/minitest/grape_app/db/proto/common/doc.rb +0 -86
  59. data/integration_tests/minitest/grape_app/db/proto/event.rb +0 -10
  60. data/integration_tests/minitest/grape_app/db/proto/event_snapshot.rb +0 -10
  61. data/integration_tests/minitest/grape_app/db/proto/project.rb +0 -21
  62. data/integration_tests/minitest/grape_app/db/proto/property.rb +0 -10
  63. data/integration_tests/minitest/grape_app/db/proto/property_snapshot.rb +0 -10
  64. data/integration_tests/minitest/grape_app/db/proto/trackable_object.rb +0 -10
  65. data/integration_tests/minitest/grape_app/db/proto/trackable_object_snapshot.rb +0 -10
  66. data/integration_tests/minitest/grape_app/db/proto/tracking_spec.rb +0 -10
  67. data/integration_tests/minitest/grape_app/test/api/functional/event_test.rb +0 -186
  68. data/integration_tests/minitest/grape_app/test/api/functional/property_test.rb +0 -197
  69. data/integration_tests/minitest/grape_app/test/api/functional/trackable_object_test.rb +0 -134
  70. data/integration_tests/minitest/grape_app/test/api/functional/tracking_spec_test.rb +0 -56
  71. data/integration_tests/minitest/grape_app/test/api/functional/user_test.rb +0 -24
  72. data/integration_tests/minitest/grape_app/test/api/functional/versioned_entity_helper.rb +0 -157
  73. data/integration_tests/minitest/grape_app/test/fixtures/change_requests.rb +0 -83
  74. data/integration_tests/minitest/grape_app/test/fixtures/event_snapshots.rb +0 -105
  75. data/integration_tests/minitest/grape_app/test/fixtures/events.rb +0 -58
  76. data/integration_tests/minitest/grape_app/test/fixtures/properties.rb +0 -66
  77. data/integration_tests/minitest/grape_app/test/fixtures/property_snapshots.rb +0 -124
  78. data/integration_tests/minitest/grape_app/test/fixtures/sample_tracking_spec.json +0 -125
  79. data/integration_tests/minitest/grape_app/test/fixtures/trackable_objects.rb +0 -58
  80. data/integration_tests/minitest/grape_app/test/fixtures/trackable_objects_snapshots.rb +0 -61
  81. data/integration_tests/minitest/grape_app/test/fixtures/tracking_specs.rb +0 -22
  82. data/integration_tests/minitest/grape_app/test/test_helper.rb +0 -15
@@ -1,89 +0,0 @@
1
- PATH
2
- remote: ../../..
3
- specs:
4
- flutter (0.1.0)
5
- deep_merge
6
- dry-configurable
7
- parser
8
-
9
- GEM
10
- remote: https://rubygems.org/
11
- specs:
12
- activesupport (7.0.4)
13
- concurrent-ruby (~> 1.0, >= 1.0.2)
14
- i18n (>= 1.6, < 2)
15
- minitest (>= 5.1)
16
- tzinfo (~> 2.0)
17
- ast (2.4.2)
18
- builder (3.2.4)
19
- concurrent-ruby (1.1.10)
20
- deep_merge (1.2.2)
21
- dotenv (2.8.1)
22
- dry-configurable (0.15.0)
23
- concurrent-ruby (~> 1.0)
24
- dry-core (~> 0.6)
25
- dry-container (0.11.0)
26
- concurrent-ruby (~> 1.0)
27
- dry-core (0.8.1)
28
- concurrent-ruby (~> 1.0)
29
- dry-inflector (0.3.0)
30
- dry-logic (1.2.0)
31
- concurrent-ruby (~> 1.0)
32
- dry-core (~> 0.5, >= 0.5)
33
- dry-types (1.5.1)
34
- concurrent-ruby (~> 1.0)
35
- dry-container (~> 0.3)
36
- dry-core (~> 0.5, >= 0.5)
37
- dry-inflector (~> 0.1, >= 0.1.2)
38
- dry-logic (~> 1.0, >= 1.0.2)
39
- grape (1.6.2)
40
- activesupport
41
- builder
42
- dry-types (>= 1.1)
43
- mustermann-grape (~> 1.0.0)
44
- rack (>= 1.3.0)
45
- rack-accept
46
- grape-entity (0.10.2)
47
- activesupport (>= 3.0.0)
48
- multi_json (>= 1.3.2)
49
- grape-swagger (1.5.0)
50
- grape (~> 1.3)
51
- i18n (1.12.0)
52
- concurrent-ruby (~> 1.0)
53
- minitest (5.16.3)
54
- multi_json (1.15.0)
55
- mustermann (3.0.0)
56
- ruby2_keywords (~> 0.0.1)
57
- mustermann-grape (1.0.2)
58
- mustermann (>= 1.0.0)
59
- nio4r (2.5.8)
60
- parser (3.1.2.1)
61
- ast (~> 2.4.1)
62
- puma (5.6.5)
63
- nio4r (~> 2.0)
64
- rack (3.0.0)
65
- rack-accept (0.4.5)
66
- rack (>= 0.4)
67
- rack-test (2.0.2)
68
- rack (>= 1.3)
69
- rake (13.0.6)
70
- ruby2_keywords (0.0.5)
71
- tzinfo (2.0.5)
72
- concurrent-ruby (~> 1.0)
73
-
74
- PLATFORMS
75
- ruby
76
-
77
- DEPENDENCIES
78
- dotenv
79
- flutter!
80
- grape
81
- grape-entity
82
- grape-swagger
83
- minitest
84
- puma
85
- rack-test
86
- rake
87
-
88
- BUNDLED WITH
89
- 2.1.4
@@ -1,2 +0,0 @@
1
- # skee
2
- Code for skee
@@ -1,9 +0,0 @@
1
- task default: %w[test]
2
-
3
- task :test do
4
- ruby 'api/test/functional/user_test.rb'
5
- ruby 'api/test/functional/event_test.rb'
6
- ruby 'api/test/functional/trackable_object_test.rb'
7
- ruby 'api/test/functional/property_test.rb'
8
- ruby 'api/test/functional/tracking_spec_test.rb'
9
- end
@@ -1,34 +0,0 @@
1
- require_relative './routes/trackable_object/api'
2
- require_relative './routes/property/api'
3
- require_relative './routes/event/api'
4
- require_relative './routes/project/api'
5
- require_relative './routes/change_request/api'
6
- require_relative './routes/tracking_spec/api'
7
- require_relative './routes/user/api'
8
-
9
- module Skee
10
- module API
11
- class API < Grape::API
12
- version 'v1', using: :header, vendor: 'skee'
13
- format :json
14
- prefix :api
15
-
16
- rescue_from Skee::App::Utils::Errors::ValidationError do |e|
17
- error!(e, 400)
18
- end
19
-
20
- before do
21
- header 'Access-Control-Allow-Origin', '*'
22
- header 'Access-Control-Allow-Headers', 'content-type'
23
- end
24
-
25
- mount Skee::API::Routes::TrackableObject::API
26
- mount Skee::API::Routes::Property::API
27
- mount Skee::API::Routes::Event::API
28
- mount Skee::API::Routes::Project::API
29
- mount Skee::API::Routes::ChangeRequest::API
30
- mount Skee::API::Routes::TrackingSpec::API
31
- mount Skee::API::Routes::User::API
32
- end
33
- end
34
- end
@@ -1,12 +0,0 @@
1
- module Skee
2
- module API
3
- module Routes
4
- module APIHelpers
5
- def whitelisted_params
6
- declared(params, include_missing: false)
7
- end
8
- end
9
- end
10
- end
11
- end
12
-
@@ -1,69 +0,0 @@
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
@@ -1,18 +0,0 @@
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
@@ -1,121 +0,0 @@
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
@@ -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