test-pack-1 1.0.0 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +37 -768
  3. data/lib/test_pack_1.rb +2 -30
  4. data/lib/test_pack_1/configuration.rb +5 -17
  5. data/lib/test_pack_1/controllers/simple_calculator_controller.rb +53 -0
  6. data/lib/test_pack_1/models/operation_type_enum.rb +23 -0
  7. data/lib/test_pack_1/test_pack1_client.rb +4 -34
  8. data/test/controllers/test_simple_calculator_controller.rb +33 -0
  9. metadata +6 -64
  10. data/lib/test_pack_1/controllers/alerts_controller.rb +0 -381
  11. data/lib/test_pack_1/controllers/assets_controller.rb +0 -227
  12. data/lib/test_pack_1/controllers/configuration_data_controller.rb +0 -76
  13. data/lib/test_pack_1/controllers/data_controller.rb +0 -349
  14. data/lib/test_pack_1/controllers/statuses_controller.rb +0 -215
  15. data/lib/test_pack_1/http/auth/custom_query_auth.rb +0 -16
  16. data/lib/test_pack_1/models/aggregate_mode_enum.rb +0 -23
  17. data/lib/test_pack_1/models/alert_item.rb +0 -104
  18. data/lib/test_pack_1/models/calculation_mode_enum.rb +0 -20
  19. data/lib/test_pack_1/models/client_configuration.rb +0 -62
  20. data/lib/test_pack_1/models/configuration_item.rb +0 -55
  21. data/lib/test_pack_1/models/data_item.rb +0 -92
  22. data/lib/test_pack_1/models/data_per_category_item.rb +0 -82
  23. data/lib/test_pack_1/models/data_per_category_response.rb +0 -63
  24. data/lib/test_pack_1/models/data_real_time_item.rb +0 -83
  25. data/lib/test_pack_1/models/data_signal.rb +0 -53
  26. data/lib/test_pack_1/models/data_signal_configuration.rb +0 -66
  27. data/lib/test_pack_1/models/data_signal_item.rb +0 -62
  28. data/lib/test_pack_1/models/device.rb +0 -208
  29. data/lib/test_pack_1/models/device_model.rb +0 -53
  30. data/lib/test_pack_1/models/metadata_field.rb +0 -44
  31. data/lib/test_pack_1/models/power_curve.rb +0 -60
  32. data/lib/test_pack_1/models/power_curve_value.rb +0 -44
  33. data/lib/test_pack_1/models/resolution_enum.rb +0 -41
  34. data/lib/test_pack_1/models/site.rb +0 -44
  35. data/lib/test_pack_1/models/site_with_data.rb +0 -78
  36. data/lib/test_pack_1/models/status_category_enum.rb +0 -26
  37. data/lib/test_pack_1/models/status_item.rb +0 -161
  38. data/lib/test_pack_1/models/time_zone_configuration.rb +0 -76
  39. data/lib/test_pack_1/models/turbine_type.rb +0 -89
  40. data/test/controllers/test_assets_controller.rb +0 -46
  41. data/test/controllers/test_configuration_data_controller.rb +0 -44
@@ -20,34 +20,10 @@ require_relative 'test_pack1/http/http_request.rb'
20
20
  require_relative 'test_pack1/http/http_response.rb'
21
21
  require_relative 'test_pack1/http/http_context.rb'
22
22
  require_relative 'test_pack1/http/faraday_client.rb'
23
- require_relative 'test_pack1/http/auth/custom_query_auth.rb'
24
23
 
25
24
  # Models
26
25
  require_relative 'test_pack1/models/base_model.rb'
27
- require_relative 'test_pack1/models/data_per_category_response.rb'
28
- require_relative 'test_pack1/models/device_model.rb'
29
- require_relative 'test_pack1/models/power_curve_value.rb'
30
- require_relative 'test_pack1/models/device.rb'
31
- require_relative 'test_pack1/models/data_real_time_item.rb'
32
- require_relative 'test_pack1/models/data_signal.rb'
33
- require_relative 'test_pack1/models/data_item.rb'
34
- require_relative 'test_pack1/models/status_item.rb'
35
- require_relative 'test_pack1/models/metadata_field.rb'
36
- require_relative 'test_pack1/models/site.rb'
37
- require_relative 'test_pack1/models/configuration_item.rb'
38
- require_relative 'test_pack1/models/turbine_type.rb'
39
- require_relative 'test_pack1/models/power_curve.rb'
40
- require_relative 'test_pack1/models/site_with_data.rb'
41
- require_relative 'test_pack1/models/data_signal_item.rb'
42
- require_relative 'test_pack1/models/data_signal_configuration.rb'
43
- require_relative 'test_pack1/models/data_per_category_item.rb'
44
- require_relative 'test_pack1/models/client_configuration.rb'
45
- require_relative 'test_pack1/models/time_zone_configuration.rb'
46
- require_relative 'test_pack1/models/alert_item.rb'
47
- require_relative 'test_pack1/models/status_category_enum.rb'
48
- require_relative 'test_pack1/models/calculation_mode_enum.rb'
49
- require_relative 'test_pack1/models/aggregate_mode_enum.rb'
50
- require_relative 'test_pack1/models/resolution_enum.rb'
26
+ require_relative 'test_pack1/models/operation_type_enum.rb'
51
27
 
52
28
  # Exceptions
53
29
  require_relative 'test_pack1/exceptions/api_exception.rb'
@@ -56,8 +32,4 @@ require_relative 'test_pack1/configuration.rb'
56
32
 
57
33
  # Controllers
58
34
  require_relative 'test_pack1/controllers/base_controller.rb'
59
- require_relative 'test_pack1/controllers/statuses_controller.rb'
60
- require_relative 'test_pack1/controllers/data_controller.rb'
61
- require_relative 'test_pack1/controllers/alerts_controller.rb'
62
- require_relative 'test_pack1/controllers/configuration_data_controller.rb'
63
- require_relative 'test_pack1/controllers/assets_controller.rb'
35
+ require_relative 'test_pack1/controllers/simple_calculator_controller.rb'
@@ -14,27 +14,22 @@ module TestPack1
14
14
 
15
15
  # An enum for SDK environments.
16
16
  class Environment
17
- #PRODUCTION: The Greenbyte API for a specific customer
17
+ #PRODUCTION: This environment connect to the LIVE calculator API
18
18
  ENVIRONMENT = [PRODUCTION = 0].freeze
19
19
  end
20
20
 
21
21
  # An enum for API servers.
22
22
  class Server
23
- SERVER = [DEFAULT = 0].freeze
23
+ SERVER = [CALCULATOR = 0].freeze
24
24
  end
25
25
 
26
26
  # The environment in which the SDK is running.
27
27
  @environment = Environment::PRODUCTION
28
28
 
29
- # TODO: Set an appropriate value.
30
- @customer = 'intro'
31
-
32
- @api_token = 'TODO: Replace'
33
-
34
29
  # All the environments the SDK can run in.
35
30
  @environments = {
36
31
  Environment::PRODUCTION => {
37
- Server::DEFAULT => 'https://{customer}.greenbyte.cloud/api/2.0'
32
+ Server::CALCULATOR => 'http://examples.apimatic.io/apps/calculator'
38
33
  }
39
34
  }
40
35
 
@@ -42,13 +37,8 @@ module TestPack1
42
37
  # @param [Configuration::Server] The server enum for which the base URI is
43
38
  # required.
44
39
  # @return [String] The base URI.
45
- def self.get_base_uri(server = Server::DEFAULT)
46
- parameters = {
47
- 'customer' => customer
48
- }
49
- APIHelper.append_url_with_template_parameters(
50
- environments[environment][server], parameters
51
- )
40
+ def self.get_base_uri(server = Server::CALCULATOR)
41
+ environments[environment][server].clone
52
42
  end
53
43
 
54
44
  # The attribute accessors for public properties.
@@ -56,8 +46,6 @@ module TestPack1
56
46
  attr_accessor :array_serialization
57
47
  attr_accessor :environment
58
48
  attr_accessor :environments
59
- attr_accessor :customer
60
- attr_accessor :api_token
61
49
  end
62
50
  end
63
51
  end
@@ -0,0 +1,53 @@
1
+ # test_pack_1
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module TestPack1
7
+ # SimpleCalculatorController
8
+ class SimpleCalculatorController < BaseController
9
+ @instance = SimpleCalculatorController.new
10
+
11
+ class << self
12
+ attr_accessor :instance
13
+ end
14
+
15
+ def instance
16
+ self.class.instance
17
+ end
18
+
19
+ # Calculates the expression using the specified operation.
20
+ # @param [OperationTypeEnum] operation Required parameter: The operator to
21
+ # apply on the variables
22
+ # @param [Float] x Required parameter: The LHS value
23
+ # @param [Float] y Required parameter: The RHS value
24
+ # @return Float response from the API call
25
+ def get_calculate(options = {})
26
+ # Prepare query url.
27
+ _path_url = '/{operation}'
28
+ _path_url = APIHelper.append_url_with_template_parameters(
29
+ _path_url,
30
+ 'operation' => options['operation']
31
+ )
32
+ _query_builder = Configuration.get_base_uri
33
+ _query_builder << _path_url
34
+ _query_builder = APIHelper.append_url_with_query_parameters(
35
+ _query_builder,
36
+ {
37
+ 'x' => options['x'],
38
+ 'y' => options['y']
39
+ },
40
+ array_serialization: Configuration.array_serialization
41
+ )
42
+ _query_url = APIHelper.clean_url _query_builder
43
+ # Prepare and execute HttpRequest.
44
+ _request = @http_client.get(
45
+ _query_url
46
+ )
47
+ _context = execute_request(_request)
48
+ validate_response(_context)
49
+ # Return appropriate response type.
50
+ _context.response.raw_body.to_f
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,23 @@
1
+ # test_pack_1
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ module TestPack1
7
+ # Possible operators are sum, subtract, multiply, divide
8
+ class OperationTypeEnum
9
+ OPERATION_TYPE_ENUM = [
10
+ # Represents the sum operator
11
+ SUM = 'SUM'.freeze,
12
+
13
+ # Represents the subtract operator
14
+ SUBTRACT = 'SUBTRACT'.freeze,
15
+
16
+ # Represents the multiply operator
17
+ MULTIPLY = 'MULTIPLY'.freeze,
18
+
19
+ # Represents the divide operator
20
+ DIVIDE = 'DIVIDE'.freeze
21
+ ].freeze
22
+ end
23
+ end
@@ -6,34 +6,10 @@
6
6
  module TestPack1
7
7
  # test_pack_1 client class.
8
8
  class TestPack1Client
9
- # Singleton access to statuses controller.
10
- # @return [StatusesController] Returns the controller instance.
11
- def statuses
12
- StatusesController.instance
13
- end
14
-
15
- # Singleton access to data controller.
16
- # @return [DataController] Returns the controller instance.
17
- def data
18
- DataController.instance
19
- end
20
-
21
- # Singleton access to alerts controller.
22
- # @return [AlertsController] Returns the controller instance.
23
- def alerts
24
- AlertsController.instance
25
- end
26
-
27
- # Singleton access to configuration_data controller.
28
- # @return [ConfigurationDataController] Returns the controller instance.
29
- def configuration_data
30
- ConfigurationDataController.instance
31
- end
32
-
33
- # Singleton access to assets controller.
34
- # @return [AssetsController] Returns the controller instance.
35
- def assets
36
- AssetsController.instance
9
+ # Singleton access to simple_calculator controller.
10
+ # @return [SimpleCalculatorController] Returns the controller instance.
11
+ def simple_calculator
12
+ SimpleCalculatorController.instance
37
13
  end
38
14
 
39
15
  # Returns the configuration class for easy access.
@@ -41,11 +17,5 @@ module TestPack1
41
17
  def config
42
18
  Configuration
43
19
  end
44
-
45
- # Initializer with authentication and configuration parameters.
46
- def initialize(api_token: nil)
47
- Configuration.api_token = api_token if
48
- api_token
49
- end
50
20
  end
51
21
  end
@@ -0,0 +1,33 @@
1
+ # test_pack_1
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0 (
4
+ # https://apimatic.io ).
5
+
6
+ require_relative 'controller_test_base'
7
+
8
+ class SimpleCalculatorControllerTests < ControllerTestBase
9
+ # Called only once for the class before any test has executed
10
+ def self.startup
11
+ self.controller = @@api_client.simple_calculator
12
+ end
13
+
14
+ # Check if multiplication works
15
+ def test_multiply()
16
+ # Parameters for the API call
17
+ options = {}
18
+ options['operation'] = 'MULTIPLY'
19
+ options['x'] = 4
20
+ options['y'] = 5
21
+
22
+ # Perform the API call through the SDK function
23
+ result = self.class.controller.get_calculate(options)
24
+
25
+ # Test response code
26
+ assert_equal(@response_catcher.response.status_code, 200)
27
+
28
+ # Test whether the captured response is as we expected
29
+ assert_not_nil(result)
30
+ assert_equal('20', @response_catcher.response.raw_body)
31
+ end
32
+
33
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test-pack-1
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - APIMatic SDK Generator
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-12 00:00:00.000000000 Z
11
+ date: 2020-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logging
@@ -106,36 +106,7 @@ dependencies:
106
106
  - - ">="
107
107
  - !ruby/object:Gem::Version
108
108
  version: 1.2.2
109
- description: 'This is the public API for the Greenbyte Platform. **Note that this
110
- is the beta version of the API,** containing new features that might change. This
111
- means that any SDKs downloaded for this version might have minor incompatibilities
112
- in the future. If you want to view the latest stable API specification, use the
113
- version selection dropdown in the top right of the page. # What''s new ## 2020-06-08
114
- – Data endpoint aggregation by group If you have divided you sites into groups of
115
- assets, you can now aggregate your data by those groups when calling the Data, Real
116
- Time Data, and Data Per Category endpoints. The new `deviceLevel` aggregation mode
117
- (`aggregate` parameter) aggregates data based on the hierarchy level directly below
118
- site. ## 2020-04-27 – Data signal permissions It is now possible to set permissions
119
- for individual data signals for API keys (**Share** > **API Keys** in the Greenbyte
120
- Platform). When adding/editing an API key, there is a new option to select authorized
121
- data signals in addition to the device selection. Leaving the signal selection blank
122
- (nothing selected) gives permission to all current and future data signals, just
123
- like previously created API keys. API endpoints affected by data signal permissions:
124
- * `datasignals.json`: filters returned data signals based on permissions. * `data.json`,
125
- `realtimedata.json`, `datapercategory.json`: gives *401 Unauthorized* error for
126
- data signals without permission. * `status.json`, `activestatus.json`: may omit
127
- lost production values (in the `lostProduction` field) based on data signal permissions. ##
128
- 2020-03-30 – Data Per Category endpoint We have added a new endpoint to the Greenbyte
129
- Platform to make it possible to extract Lost Production data per contract category
130
- from the API. You can find more information about this endpoint here: [Data Per
131
- Category](#/http/api-endpoints/data/get-data-per-category). # General notes regarding
132
- endpoints * Endpoints that take `page` and `pageSize` parameters return a `Link`
133
- header as defined in [RFC 8288](https://tools.ietf.org/html/rfc8288). * Some endpoints
134
- return data in your local time zone. This time zone can be fetched from the `configuration.json`
135
- endpoint. * All endpoints can also be reached using the POST method, with a JSON
136
- request body instead of query parameters. * All endpoints implement rate limiting.
137
- More information is available under the *429* error response description for each
138
- endpoint. '
109
+ description: Simple calculator API hosted on APIMATIC
139
110
  email: support@apimatic.io
140
111
  executables: []
141
112
  extensions: []
@@ -146,14 +117,9 @@ files:
146
117
  - lib/test_pack_1.rb
147
118
  - lib/test_pack_1/api_helper.rb
148
119
  - lib/test_pack_1/configuration.rb
149
- - lib/test_pack_1/controllers/alerts_controller.rb
150
- - lib/test_pack_1/controllers/assets_controller.rb
151
120
  - lib/test_pack_1/controllers/base_controller.rb
152
- - lib/test_pack_1/controllers/configuration_data_controller.rb
153
- - lib/test_pack_1/controllers/data_controller.rb
154
- - lib/test_pack_1/controllers/statuses_controller.rb
121
+ - lib/test_pack_1/controllers/simple_calculator_controller.rb
155
122
  - lib/test_pack_1/exceptions/api_exception.rb
156
- - lib/test_pack_1/http/auth/custom_query_auth.rb
157
123
  - lib/test_pack_1/http/faraday_client.rb
158
124
  - lib/test_pack_1/http/http_call_back.rb
159
125
  - lib/test_pack_1/http/http_client.rb
@@ -161,35 +127,11 @@ files:
161
127
  - lib/test_pack_1/http/http_method_enum.rb
162
128
  - lib/test_pack_1/http/http_request.rb
163
129
  - lib/test_pack_1/http/http_response.rb
164
- - lib/test_pack_1/models/aggregate_mode_enum.rb
165
- - lib/test_pack_1/models/alert_item.rb
166
130
  - lib/test_pack_1/models/base_model.rb
167
- - lib/test_pack_1/models/calculation_mode_enum.rb
168
- - lib/test_pack_1/models/client_configuration.rb
169
- - lib/test_pack_1/models/configuration_item.rb
170
- - lib/test_pack_1/models/data_item.rb
171
- - lib/test_pack_1/models/data_per_category_item.rb
172
- - lib/test_pack_1/models/data_per_category_response.rb
173
- - lib/test_pack_1/models/data_real_time_item.rb
174
- - lib/test_pack_1/models/data_signal.rb
175
- - lib/test_pack_1/models/data_signal_configuration.rb
176
- - lib/test_pack_1/models/data_signal_item.rb
177
- - lib/test_pack_1/models/device.rb
178
- - lib/test_pack_1/models/device_model.rb
179
- - lib/test_pack_1/models/metadata_field.rb
180
- - lib/test_pack_1/models/power_curve.rb
181
- - lib/test_pack_1/models/power_curve_value.rb
182
- - lib/test_pack_1/models/resolution_enum.rb
183
- - lib/test_pack_1/models/site.rb
184
- - lib/test_pack_1/models/site_with_data.rb
185
- - lib/test_pack_1/models/status_category_enum.rb
186
- - lib/test_pack_1/models/status_item.rb
187
- - lib/test_pack_1/models/time_zone_configuration.rb
188
- - lib/test_pack_1/models/turbine_type.rb
131
+ - lib/test_pack_1/models/operation_type_enum.rb
189
132
  - lib/test_pack_1/test_pack1_client.rb
190
133
  - test/controllers/controller_test_base.rb
191
- - test/controllers/test_assets_controller.rb
192
- - test/controllers/test_configuration_data_controller.rb
134
+ - test/controllers/test_simple_calculator_controller.rb
193
135
  - test/http_response_catcher.rb
194
136
  - test/test_helper.rb
195
137
  homepage: https://apimatic.io
@@ -1,381 +0,0 @@
1
- # test_pack_1
2
- #
3
- # This file was automatically generated by APIMATIC v2.0 (
4
- # https://apimatic.io ).
5
-
6
- module TestPack1
7
- # AlertsController
8
- class AlertsController < BaseController
9
- @instance = AlertsController.new
10
-
11
- class << self
12
- attr_accessor :instance
13
- end
14
-
15
- def instance
16
- self.class.instance
17
- end
18
-
19
- # _This endpoint is deprecated. Please use the new endpoint
20
- # `/activealerts.json` instead._
21
- # @param [List of Integer] device_ids Required parameter: What devices to
22
- # get alerts for.
23
- # @param [List of String] fields Optional parameter: Which fields to include
24
- # in the response. Valid fields are those defined in the `AlertItem` schema.
25
- # By default all fields are included.
26
- # @param [List of String] sort_by Optional parameter: Which fields to sort
27
- # the response items by. By default the items are sorted by
28
- # timestampStart.
29
- # @param [Boolean] sort_asc Optional parameter: Whether to sort the items in
30
- # ascending order.
31
- # @param [Integer] page_size Optional parameter: The number of items to
32
- # return per page.
33
- # @param [Integer] page Optional parameter: Which page to return when the
34
- # number of items exceed the page size.
35
- # @return List of AlertItem response from the API call
36
- def get_active_alarms(device_ids,
37
- fields = nil,
38
- sort_by = nil,
39
- sort_asc = false,
40
- page_size = 50,
41
- page = 1)
42
- # Prepare query url.
43
- _path_url = '/activealarms.json'
44
- _query_builder = Configuration.get_base_uri
45
- _query_builder << _path_url
46
- _query_builder = APIHelper.append_url_with_query_parameters(
47
- _query_builder,
48
- {
49
- 'deviceIds' => device_ids,
50
- 'fields' => fields,
51
- 'sortBy' => sort_by,
52
- 'sortAsc' => sort_asc,
53
- 'pageSize' => page_size,
54
- 'page' => page
55
- },
56
- array_serialization: Configuration.array_serialization
57
- )
58
- _query_url = APIHelper.clean_url _query_builder
59
- # Prepare headers.
60
- _headers = {
61
- 'accept' => 'application/json'
62
- }
63
- # Prepare and execute HttpRequest.
64
- _request = @http_client.get(
65
- _query_url,
66
- headers: _headers
67
- )
68
- CustomQueryAuth.apply(_request)
69
- _context = execute_request(_request)
70
- # Validate response against endpoint and global error codes.
71
- if _context.response.status_code == 400
72
- raise APIException.new(
73
- 'The request cannot be fulfilled due to bad syntax.',
74
- _context
75
- )
76
- elsif _context.response.status_code == 401
77
- raise APIException.new(
78
- 'One of the following: * The request is missing a valid API key. *' \
79
- ' The API key does not authorize access the requested' \
80
- ' data. Devices or data signals can be limited. ',
81
- _context
82
- )
83
- elsif _context.response.status_code == 405
84
- raise APIException.new(
85
- 'The HTTP method is not allowed for the endpoint.',
86
- _context
87
- )
88
- elsif _context.response.status_code == 429
89
- raise APIException.new(
90
- 'The API key has been used in too many requests in a given amount' \
91
- ' of time. The following headers will be set in the' \
92
- ' response: * X-Rate-Limit-Limit - The total number of' \
93
- ' allowed requests for this period. *' \
94
- ' X-Rate-Limit-Remaining - The remaining number of' \
95
- ' requests for this period. * X-Rate-Limit-Reset - The' \
96
- ' number of seconds left until the end of this period. ',
97
- _context
98
- )
99
- end
100
- validate_response(_context)
101
- # Return appropriate response type.
102
- decoded = APIHelper.json_deserialize(_context.response.raw_body)
103
- decoded.map { |element| AlertItem.from_hash(element) }
104
- end
105
-
106
- # Gets active alerts for multiple devices.
107
- # @param [List of Integer] device_ids Required parameter: What devices to
108
- # get alerts for.
109
- # @param [List of String] fields Optional parameter: Which fields to include
110
- # in the response. Valid fields are those defined in the `AlertItem` schema.
111
- # By default all fields are included.
112
- # @param [List of String] sort_by Optional parameter: Which fields to sort
113
- # the response items by. By default the items are sorted by
114
- # timestampStart.
115
- # @param [Boolean] sort_asc Optional parameter: Whether to sort the items in
116
- # ascending order.
117
- # @param [Integer] page_size Optional parameter: The number of items to
118
- # return per page.
119
- # @param [Integer] page Optional parameter: Which page to return when the
120
- # number of items exceed the page size.
121
- # @return List of AlertItem response from the API call
122
- def get_active_alerts(device_ids,
123
- fields = nil,
124
- sort_by = nil,
125
- sort_asc = false,
126
- page_size = 50,
127
- page = 1)
128
- # Prepare query url.
129
- _path_url = '/activealerts.json'
130
- _query_builder = Configuration.get_base_uri
131
- _query_builder << _path_url
132
- _query_builder = APIHelper.append_url_with_query_parameters(
133
- _query_builder,
134
- {
135
- 'deviceIds' => device_ids,
136
- 'fields' => fields,
137
- 'sortBy' => sort_by,
138
- 'sortAsc' => sort_asc,
139
- 'pageSize' => page_size,
140
- 'page' => page
141
- },
142
- array_serialization: Configuration.array_serialization
143
- )
144
- _query_url = APIHelper.clean_url _query_builder
145
- # Prepare headers.
146
- _headers = {
147
- 'accept' => 'application/json'
148
- }
149
- # Prepare and execute HttpRequest.
150
- _request = @http_client.get(
151
- _query_url,
152
- headers: _headers
153
- )
154
- CustomQueryAuth.apply(_request)
155
- _context = execute_request(_request)
156
- # Validate response against endpoint and global error codes.
157
- if _context.response.status_code == 400
158
- raise APIException.new(
159
- 'The request cannot be fulfilled due to bad syntax.',
160
- _context
161
- )
162
- elsif _context.response.status_code == 401
163
- raise APIException.new(
164
- 'One of the following: * The request is missing a valid API key. *' \
165
- ' The API key does not authorize access the requested' \
166
- ' data. Devices or data signals can be limited. ',
167
- _context
168
- )
169
- elsif _context.response.status_code == 405
170
- raise APIException.new(
171
- 'The HTTP method is not allowed for the endpoint.',
172
- _context
173
- )
174
- elsif _context.response.status_code == 429
175
- raise APIException.new(
176
- 'The API key has been used in too many requests in a given amount' \
177
- ' of time. The following headers will be set in the' \
178
- ' response: * X-Rate-Limit-Limit - The total number of' \
179
- ' allowed requests for this period. *' \
180
- ' X-Rate-Limit-Remaining - The remaining number of' \
181
- ' requests for this period. * X-Rate-Limit-Reset - The' \
182
- ' number of seconds left until the end of this period. ',
183
- _context
184
- )
185
- end
186
- validate_response(_context)
187
- # Return appropriate response type.
188
- decoded = APIHelper.json_deserialize(_context.response.raw_body)
189
- decoded.map { |element| AlertItem.from_hash(element) }
190
- end
191
-
192
- # Gets alerts for multiple devices and the given time period.
193
- # @param [List of Integer] device_ids Required parameter: What devices to
194
- # get alerts for.
195
- # @param [DateTime] timestamp_start Required parameter: The first timestamp
196
- # to get data for.
197
- # @param [DateTime] timestamp_end Required parameter: The last timestamp to
198
- # get data for.
199
- # @param [List of String] fields Optional parameter: Which fields to include
200
- # in the response. Valid fields are those defined in the `AlertItem` schema.
201
- # By default all fields are included.
202
- # @param [List of String] sort_by Optional parameter: Which fields to sort
203
- # the response items by. By default the items are sorted by
204
- # timestampStart.
205
- # @param [Boolean] sort_asc Optional parameter: Whether to sort the items in
206
- # ascending order.
207
- # @param [Integer] page_size Optional parameter: The number of items to
208
- # return per page.
209
- # @param [Integer] page Optional parameter: Which page to return when the
210
- # number of items exceed the page size.
211
- # @return List of AlertItem response from the API call
212
- def get_alerts(device_ids,
213
- timestamp_start,
214
- timestamp_end,
215
- fields = nil,
216
- sort_by = nil,
217
- sort_asc = false,
218
- page_size = 50,
219
- page = 1)
220
- # Prepare query url.
221
- _path_url = '/alerts.json'
222
- _query_builder = Configuration.get_base_uri
223
- _query_builder << _path_url
224
- _query_builder = APIHelper.append_url_with_query_parameters(
225
- _query_builder,
226
- {
227
- 'deviceIds' => device_ids,
228
- 'timestampStart' => timestamp_start,
229
- 'timestampEnd' => timestamp_end,
230
- 'fields' => fields,
231
- 'sortBy' => sort_by,
232
- 'sortAsc' => sort_asc,
233
- 'pageSize' => page_size,
234
- 'page' => page
235
- },
236
- array_serialization: Configuration.array_serialization
237
- )
238
- _query_url = APIHelper.clean_url _query_builder
239
- # Prepare headers.
240
- _headers = {
241
- 'accept' => 'application/json'
242
- }
243
- # Prepare and execute HttpRequest.
244
- _request = @http_client.get(
245
- _query_url,
246
- headers: _headers
247
- )
248
- CustomQueryAuth.apply(_request)
249
- _context = execute_request(_request)
250
- # Validate response against endpoint and global error codes.
251
- if _context.response.status_code == 400
252
- raise APIException.new(
253
- 'The request cannot be fulfilled due to bad syntax.',
254
- _context
255
- )
256
- elsif _context.response.status_code == 401
257
- raise APIException.new(
258
- 'One of the following: * The request is missing a valid API key. *' \
259
- ' The API key does not authorize access the requested' \
260
- ' data. Devices or data signals can be limited. ',
261
- _context
262
- )
263
- elsif _context.response.status_code == 405
264
- raise APIException.new(
265
- 'The HTTP method is not allowed for the endpoint.',
266
- _context
267
- )
268
- elsif _context.response.status_code == 429
269
- raise APIException.new(
270
- 'The API key has been used in too many requests in a given amount' \
271
- ' of time. The following headers will be set in the' \
272
- ' response: * X-Rate-Limit-Limit - The total number of' \
273
- ' allowed requests for this period. *' \
274
- ' X-Rate-Limit-Remaining - The remaining number of' \
275
- ' requests for this period. * X-Rate-Limit-Reset - The' \
276
- ' number of seconds left until the end of this period. ',
277
- _context
278
- )
279
- end
280
- validate_response(_context)
281
- # Return appropriate response type.
282
- decoded = APIHelper.json_deserialize(_context.response.raw_body)
283
- decoded.map { |element| AlertItem.from_hash(element) }
284
- end
285
-
286
- # _This endpoint is deprecated. Please use the new endpoint `/alerts.json`
287
- # instead._
288
- # @param [List of Integer] device_ids Required parameter: What devices to
289
- # get alerts for.
290
- # @param [DateTime] timestamp_start Required parameter: The first timestamp
291
- # to get data for.
292
- # @param [DateTime] timestamp_end Required parameter: The last timestamp to
293
- # get data for.
294
- # @param [List of String] fields Optional parameter: Which fields to include
295
- # in the response. Valid fields are those defined in the `AlertItem` schema.
296
- # By default all fields are included.
297
- # @param [List of String] sort_by Optional parameter: Which fields to sort
298
- # the response items by. By default the items are sorted by
299
- # timestampStart.
300
- # @param [Boolean] sort_asc Optional parameter: Whether to sort the items in
301
- # ascending order.
302
- # @param [Integer] page_size Optional parameter: The number of items to
303
- # return per page.
304
- # @param [Integer] page Optional parameter: Which page to return when the
305
- # number of items exceed the page size.
306
- # @return List of AlertItem response from the API call
307
- def get_alarms(device_ids,
308
- timestamp_start,
309
- timestamp_end,
310
- fields = nil,
311
- sort_by = nil,
312
- sort_asc = false,
313
- page_size = 50,
314
- page = 1)
315
- # Prepare query url.
316
- _path_url = '/alarms.json'
317
- _query_builder = Configuration.get_base_uri
318
- _query_builder << _path_url
319
- _query_builder = APIHelper.append_url_with_query_parameters(
320
- _query_builder,
321
- {
322
- 'deviceIds' => device_ids,
323
- 'timestampStart' => timestamp_start,
324
- 'timestampEnd' => timestamp_end,
325
- 'fields' => fields,
326
- 'sortBy' => sort_by,
327
- 'sortAsc' => sort_asc,
328
- 'pageSize' => page_size,
329
- 'page' => page
330
- },
331
- array_serialization: Configuration.array_serialization
332
- )
333
- _query_url = APIHelper.clean_url _query_builder
334
- # Prepare headers.
335
- _headers = {
336
- 'accept' => 'application/json'
337
- }
338
- # Prepare and execute HttpRequest.
339
- _request = @http_client.get(
340
- _query_url,
341
- headers: _headers
342
- )
343
- CustomQueryAuth.apply(_request)
344
- _context = execute_request(_request)
345
- # Validate response against endpoint and global error codes.
346
- if _context.response.status_code == 400
347
- raise APIException.new(
348
- 'The request cannot be fulfilled due to bad syntax.',
349
- _context
350
- )
351
- elsif _context.response.status_code == 401
352
- raise APIException.new(
353
- 'One of the following: * The request is missing a valid API key. *' \
354
- ' The API key does not authorize access the requested' \
355
- ' data. Devices or data signals can be limited. ',
356
- _context
357
- )
358
- elsif _context.response.status_code == 405
359
- raise APIException.new(
360
- 'The HTTP method is not allowed for the endpoint.',
361
- _context
362
- )
363
- elsif _context.response.status_code == 429
364
- raise APIException.new(
365
- 'The API key has been used in too many requests in a given amount' \
366
- ' of time. The following headers will be set in the' \
367
- ' response: * X-Rate-Limit-Limit - The total number of' \
368
- ' allowed requests for this period. *' \
369
- ' X-Rate-Limit-Remaining - The remaining number of' \
370
- ' requests for this period. * X-Rate-Limit-Reset - The' \
371
- ' number of seconds left until the end of this period. ',
372
- _context
373
- )
374
- end
375
- validate_response(_context)
376
- # Return appropriate response type.
377
- decoded = APIHelper.json_deserialize(_context.response.raw_body)
378
- decoded.map { |element| AlertItem.from_hash(element) }
379
- end
380
- end
381
- end