test-pack-1 1.0.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 +7 -0
- data/LICENSE +28 -0
- data/README.md +872 -0
- data/lib/test_pack_1.rb +63 -0
- data/lib/test_pack_1/api_helper.rb +275 -0
- data/lib/test_pack_1/configuration.rb +63 -0
- data/lib/test_pack_1/controllers/alerts_controller.rb +381 -0
- data/lib/test_pack_1/controllers/assets_controller.rb +227 -0
- data/lib/test_pack_1/controllers/base_controller.rb +51 -0
- data/lib/test_pack_1/controllers/configuration_data_controller.rb +76 -0
- data/lib/test_pack_1/controllers/data_controller.rb +349 -0
- data/lib/test_pack_1/controllers/statuses_controller.rb +215 -0
- data/lib/test_pack_1/exceptions/api_exception.rb +20 -0
- data/lib/test_pack_1/http/auth/custom_query_auth.rb +16 -0
- data/lib/test_pack_1/http/faraday_client.rb +64 -0
- data/lib/test_pack_1/http/http_call_back.rb +24 -0
- data/lib/test_pack_1/http/http_client.rb +104 -0
- data/lib/test_pack_1/http/http_context.rb +20 -0
- data/lib/test_pack_1/http/http_method_enum.rb +13 -0
- data/lib/test_pack_1/http/http_request.rb +50 -0
- data/lib/test_pack_1/http/http_response.rb +23 -0
- data/lib/test_pack_1/models/aggregate_mode_enum.rb +23 -0
- data/lib/test_pack_1/models/alert_item.rb +104 -0
- data/lib/test_pack_1/models/base_model.rb +36 -0
- data/lib/test_pack_1/models/calculation_mode_enum.rb +20 -0
- data/lib/test_pack_1/models/client_configuration.rb +62 -0
- data/lib/test_pack_1/models/configuration_item.rb +55 -0
- data/lib/test_pack_1/models/data_item.rb +92 -0
- data/lib/test_pack_1/models/data_per_category_item.rb +82 -0
- data/lib/test_pack_1/models/data_per_category_response.rb +63 -0
- data/lib/test_pack_1/models/data_real_time_item.rb +83 -0
- data/lib/test_pack_1/models/data_signal.rb +53 -0
- data/lib/test_pack_1/models/data_signal_configuration.rb +66 -0
- data/lib/test_pack_1/models/data_signal_item.rb +62 -0
- data/lib/test_pack_1/models/device.rb +208 -0
- data/lib/test_pack_1/models/device_model.rb +53 -0
- data/lib/test_pack_1/models/metadata_field.rb +44 -0
- data/lib/test_pack_1/models/power_curve.rb +60 -0
- data/lib/test_pack_1/models/power_curve_value.rb +44 -0
- data/lib/test_pack_1/models/resolution_enum.rb +41 -0
- data/lib/test_pack_1/models/site.rb +44 -0
- data/lib/test_pack_1/models/site_with_data.rb +78 -0
- data/lib/test_pack_1/models/status_category_enum.rb +26 -0
- data/lib/test_pack_1/models/status_item.rb +161 -0
- data/lib/test_pack_1/models/time_zone_configuration.rb +76 -0
- data/lib/test_pack_1/models/turbine_type.rb +89 -0
- data/lib/test_pack_1/test_pack1_client.rb +51 -0
- data/test/controllers/controller_test_base.rb +33 -0
- data/test/controllers/test_assets_controller.rb +46 -0
- data/test/controllers/test_configuration_data_controller.rb +44 -0
- data/test/http_response_catcher.rb +20 -0
- data/test/test_helper.rb +99 -0
- metadata +219 -0
@@ -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
|
+
# General device model information.
|
8
|
+
class DeviceModel < BaseModel
|
9
|
+
# TODO: Write general description for this method
|
10
|
+
# @return [Integer]
|
11
|
+
attr_accessor :device_model_id
|
12
|
+
|
13
|
+
# TODO: Write general description for this method
|
14
|
+
# @return [String]
|
15
|
+
attr_accessor :manufacturer
|
16
|
+
|
17
|
+
# TODO: Write general description for this method
|
18
|
+
# @return [String]
|
19
|
+
attr_accessor :model
|
20
|
+
|
21
|
+
# A mapping from model property names to API property names.
|
22
|
+
def self.names
|
23
|
+
@_hash = {} if @_hash.nil?
|
24
|
+
@_hash['device_model_id'] = 'deviceModelId'
|
25
|
+
@_hash['manufacturer'] = 'manufacturer'
|
26
|
+
@_hash['model'] = 'model'
|
27
|
+
@_hash
|
28
|
+
end
|
29
|
+
|
30
|
+
def initialize(device_model_id = nil,
|
31
|
+
manufacturer = nil,
|
32
|
+
model = nil)
|
33
|
+
@device_model_id = device_model_id
|
34
|
+
@manufacturer = manufacturer
|
35
|
+
@model = model
|
36
|
+
end
|
37
|
+
|
38
|
+
# Creates an instance of the object from a hash.
|
39
|
+
def self.from_hash(hash)
|
40
|
+
return nil unless hash
|
41
|
+
|
42
|
+
# Extract variables from the hash.
|
43
|
+
device_model_id = hash['deviceModelId']
|
44
|
+
manufacturer = hash['manufacturer']
|
45
|
+
model = hash['model']
|
46
|
+
|
47
|
+
# Create object from extracted values.
|
48
|
+
DeviceModel.new(device_model_id,
|
49
|
+
manufacturer,
|
50
|
+
model)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# test_pack_1
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0 (
|
4
|
+
# https://apimatic.io ).
|
5
|
+
|
6
|
+
module TestPack1
|
7
|
+
# A metadata field.
|
8
|
+
class MetadataField < BaseModel
|
9
|
+
# TODO: Write general description for this method
|
10
|
+
# @return [String]
|
11
|
+
attr_accessor :key
|
12
|
+
|
13
|
+
# TODO: Write general description for this method
|
14
|
+
# @return [String]
|
15
|
+
attr_accessor :value
|
16
|
+
|
17
|
+
# A mapping from model property names to API property names.
|
18
|
+
def self.names
|
19
|
+
@_hash = {} if @_hash.nil?
|
20
|
+
@_hash['key'] = 'key'
|
21
|
+
@_hash['value'] = 'value'
|
22
|
+
@_hash
|
23
|
+
end
|
24
|
+
|
25
|
+
def initialize(key = nil,
|
26
|
+
value = nil)
|
27
|
+
@key = key
|
28
|
+
@value = value
|
29
|
+
end
|
30
|
+
|
31
|
+
# Creates an instance of the object from a hash.
|
32
|
+
def self.from_hash(hash)
|
33
|
+
return nil unless hash
|
34
|
+
|
35
|
+
# Extract variables from the hash.
|
36
|
+
key = hash['key']
|
37
|
+
value = hash['value']
|
38
|
+
|
39
|
+
# Create object from extracted values.
|
40
|
+
MetadataField.new(key,
|
41
|
+
value)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# test_pack_1
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0 (
|
4
|
+
# https://apimatic.io ).
|
5
|
+
|
6
|
+
module TestPack1
|
7
|
+
# PowerCurve Model.
|
8
|
+
class PowerCurve < BaseModel
|
9
|
+
# The id of a device.
|
10
|
+
# @return [Integer]
|
11
|
+
attr_accessor :device_id
|
12
|
+
|
13
|
+
# The title of the power curve.
|
14
|
+
# @return [String]
|
15
|
+
attr_accessor :title
|
16
|
+
|
17
|
+
# The title of the power curve.
|
18
|
+
# @return [List of PowerCurveValue]
|
19
|
+
attr_accessor :values
|
20
|
+
|
21
|
+
# A mapping from model property names to API property names.
|
22
|
+
def self.names
|
23
|
+
@_hash = {} if @_hash.nil?
|
24
|
+
@_hash['device_id'] = 'deviceId'
|
25
|
+
@_hash['title'] = 'title'
|
26
|
+
@_hash['values'] = 'values'
|
27
|
+
@_hash
|
28
|
+
end
|
29
|
+
|
30
|
+
def initialize(device_id = nil,
|
31
|
+
title = nil,
|
32
|
+
values = nil)
|
33
|
+
@device_id = device_id
|
34
|
+
@title = title
|
35
|
+
@values = values
|
36
|
+
end
|
37
|
+
|
38
|
+
# Creates an instance of the object from a hash.
|
39
|
+
def self.from_hash(hash)
|
40
|
+
return nil unless hash
|
41
|
+
|
42
|
+
# Extract variables from the hash.
|
43
|
+
device_id = hash['deviceId']
|
44
|
+
title = hash['title']
|
45
|
+
# Parameter is an array, so we need to iterate through it
|
46
|
+
values = nil
|
47
|
+
unless hash['values'].nil?
|
48
|
+
values = []
|
49
|
+
hash['values'].each do |structure|
|
50
|
+
values << (PowerCurveValue.from_hash(structure) if structure)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# Create object from extracted values.
|
55
|
+
PowerCurve.new(device_id,
|
56
|
+
title,
|
57
|
+
values)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# test_pack_1
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0 (
|
4
|
+
# https://apimatic.io ).
|
5
|
+
|
6
|
+
module TestPack1
|
7
|
+
# The power at a specific wind speed according to a power curve.
|
8
|
+
class PowerCurveValue < BaseModel
|
9
|
+
# Wind speed in m/s
|
10
|
+
# @return [Float]
|
11
|
+
attr_accessor :wind_speed
|
12
|
+
|
13
|
+
# Power in kW
|
14
|
+
# @return [Float]
|
15
|
+
attr_accessor :power
|
16
|
+
|
17
|
+
# A mapping from model property names to API property names.
|
18
|
+
def self.names
|
19
|
+
@_hash = {} if @_hash.nil?
|
20
|
+
@_hash['wind_speed'] = 'windSpeed'
|
21
|
+
@_hash['power'] = 'power'
|
22
|
+
@_hash
|
23
|
+
end
|
24
|
+
|
25
|
+
def initialize(wind_speed = nil,
|
26
|
+
power = nil)
|
27
|
+
@wind_speed = wind_speed
|
28
|
+
@power = power
|
29
|
+
end
|
30
|
+
|
31
|
+
# Creates an instance of the object from a hash.
|
32
|
+
def self.from_hash(hash)
|
33
|
+
return nil unless hash
|
34
|
+
|
35
|
+
# Extract variables from the hash.
|
36
|
+
wind_speed = hash['windSpeed']
|
37
|
+
power = hash['power']
|
38
|
+
|
39
|
+
# Create object from extracted values.
|
40
|
+
PowerCurveValue.new(wind_speed,
|
41
|
+
power)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# test_pack_1
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0 (
|
4
|
+
# https://apimatic.io ).
|
5
|
+
|
6
|
+
module TestPack1
|
7
|
+
# The resolution for time-series data.
|
8
|
+
class ResolutionEnum
|
9
|
+
RESOLUTION_ENUM = [
|
10
|
+
# TODO: Write general description for ENUM_5MINUTE
|
11
|
+
ENUM_5MINUTE = '5minute'.freeze,
|
12
|
+
|
13
|
+
# TODO: Write general description for ENUM_10MINUTE
|
14
|
+
ENUM_10MINUTE = '10minute'.freeze,
|
15
|
+
|
16
|
+
# TODO: Write general description for ENUM_15MINUTE
|
17
|
+
ENUM_15MINUTE = '15minute'.freeze,
|
18
|
+
|
19
|
+
# TODO: Write general description for HOURLY
|
20
|
+
HOURLY = 'hourly'.freeze,
|
21
|
+
|
22
|
+
# TODO: Write general description for DAILY
|
23
|
+
DAILY = 'daily'.freeze,
|
24
|
+
|
25
|
+
# TODO: Write general description for WEEKLY
|
26
|
+
WEEKLY = 'weekly'.freeze,
|
27
|
+
|
28
|
+
# TODO: Write general description for MONTHLY
|
29
|
+
MONTHLY = 'monthly'.freeze,
|
30
|
+
|
31
|
+
# TODO: Write general description for YEARLY
|
32
|
+
YEARLY = 'yearly'.freeze,
|
33
|
+
|
34
|
+
# TODO: Write general description for INTERVAL
|
35
|
+
INTERVAL = 'interval'.freeze,
|
36
|
+
|
37
|
+
# TODO: Write general description for DEVICE
|
38
|
+
DEVICE = 'device'.freeze
|
39
|
+
].freeze
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# test_pack_1
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0 (
|
4
|
+
# https://apimatic.io ).
|
5
|
+
|
6
|
+
module TestPack1
|
7
|
+
# Site Model.
|
8
|
+
class Site < BaseModel
|
9
|
+
# The id of a site.
|
10
|
+
# @return [Integer]
|
11
|
+
attr_accessor :site_id
|
12
|
+
|
13
|
+
# The id of a site.
|
14
|
+
# @return [String]
|
15
|
+
attr_accessor :title
|
16
|
+
|
17
|
+
# A mapping from model property names to API property names.
|
18
|
+
def self.names
|
19
|
+
@_hash = {} if @_hash.nil?
|
20
|
+
@_hash['site_id'] = 'siteId'
|
21
|
+
@_hash['title'] = 'title'
|
22
|
+
@_hash
|
23
|
+
end
|
24
|
+
|
25
|
+
def initialize(site_id = nil,
|
26
|
+
title = nil)
|
27
|
+
@site_id = site_id
|
28
|
+
@title = title
|
29
|
+
end
|
30
|
+
|
31
|
+
# Creates an instance of the object from a hash.
|
32
|
+
def self.from_hash(hash)
|
33
|
+
return nil unless hash
|
34
|
+
|
35
|
+
# Extract variables from the hash.
|
36
|
+
site_id = hash['siteId']
|
37
|
+
title = hash['title']
|
38
|
+
|
39
|
+
# Create object from extracted values.
|
40
|
+
Site.new(site_id,
|
41
|
+
title)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
# test_pack_1
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0 (
|
4
|
+
# https://apimatic.io ).
|
5
|
+
|
6
|
+
module TestPack1
|
7
|
+
# SiteWithData Model.
|
8
|
+
class SiteWithData < BaseModel
|
9
|
+
# The id of a site.
|
10
|
+
# @return [Integer]
|
11
|
+
attr_accessor :site_id
|
12
|
+
|
13
|
+
# The id of a site.
|
14
|
+
# @return [String]
|
15
|
+
attr_accessor :title
|
16
|
+
|
17
|
+
# The id of a site.
|
18
|
+
# @return [String]
|
19
|
+
attr_accessor :country
|
20
|
+
|
21
|
+
# The id of a site.
|
22
|
+
# @return [String]
|
23
|
+
attr_accessor :identity
|
24
|
+
|
25
|
+
# A list of metadata fields and their values.
|
26
|
+
# @return [List of MetadataField]
|
27
|
+
attr_accessor :metadata
|
28
|
+
|
29
|
+
# A mapping from model property names to API property names.
|
30
|
+
def self.names
|
31
|
+
@_hash = {} if @_hash.nil?
|
32
|
+
@_hash['site_id'] = 'siteId'
|
33
|
+
@_hash['title'] = 'title'
|
34
|
+
@_hash['country'] = 'country'
|
35
|
+
@_hash['identity'] = 'identity'
|
36
|
+
@_hash['metadata'] = 'metadata'
|
37
|
+
@_hash
|
38
|
+
end
|
39
|
+
|
40
|
+
def initialize(site_id = nil,
|
41
|
+
title = nil,
|
42
|
+
country = nil,
|
43
|
+
identity = nil,
|
44
|
+
metadata = nil)
|
45
|
+
@site_id = site_id
|
46
|
+
@title = title
|
47
|
+
@country = country
|
48
|
+
@identity = identity
|
49
|
+
@metadata = metadata
|
50
|
+
end
|
51
|
+
|
52
|
+
# Creates an instance of the object from a hash.
|
53
|
+
def self.from_hash(hash)
|
54
|
+
return nil unless hash
|
55
|
+
|
56
|
+
# Extract variables from the hash.
|
57
|
+
site_id = hash['siteId']
|
58
|
+
title = hash['title']
|
59
|
+
country = hash['country']
|
60
|
+
identity = hash['identity']
|
61
|
+
# Parameter is an array, so we need to iterate through it
|
62
|
+
metadata = nil
|
63
|
+
unless hash['metadata'].nil?
|
64
|
+
metadata = []
|
65
|
+
hash['metadata'].each do |structure|
|
66
|
+
metadata << (MetadataField.from_hash(structure) if structure)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
# Create object from extracted values.
|
71
|
+
SiteWithData.new(site_id,
|
72
|
+
title,
|
73
|
+
country,
|
74
|
+
identity,
|
75
|
+
metadata)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# test_pack_1
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0 (
|
4
|
+
# https://apimatic.io ).
|
5
|
+
|
6
|
+
module TestPack1
|
7
|
+
# The category a status belongs to.
|
8
|
+
class StatusCategoryEnum
|
9
|
+
STATUS_CATEGORY_ENUM = [
|
10
|
+
# TODO: Write general description for STOP
|
11
|
+
STOP = 'stop'.freeze,
|
12
|
+
|
13
|
+
# TODO: Write general description for WARNING
|
14
|
+
WARNING = 'warning'.freeze,
|
15
|
+
|
16
|
+
# TODO: Write general description for INFORMATIONAL
|
17
|
+
INFORMATIONAL = 'informational'.freeze,
|
18
|
+
|
19
|
+
# TODO: Write general description for COMMUNICATION
|
20
|
+
COMMUNICATION = 'communication'.freeze,
|
21
|
+
|
22
|
+
# TODO: Write general description for CURTAILMENT
|
23
|
+
CURTAILMENT = 'curtailment'.freeze
|
24
|
+
].freeze
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,161 @@
|
|
1
|
+
# test_pack_1
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0 (
|
4
|
+
# https://apimatic.io ).
|
5
|
+
|
6
|
+
require 'date'
|
7
|
+
module TestPack1
|
8
|
+
# A status that may contain statuses of the same type as sub-statuses. Note
|
9
|
+
# that for sub-statuses the fields `categoryIec`, `categoryContract`, and
|
10
|
+
# `subStatus` will always be null.
|
11
|
+
class StatusItem < BaseModel
|
12
|
+
# The id of the device affected by the status.
|
13
|
+
# @return [Integer]
|
14
|
+
attr_accessor :device_id
|
15
|
+
|
16
|
+
# The timestamp when the status began. The timestamp is in your
|
17
|
+
# system-configured time zone without UTC offset.
|
18
|
+
# @return [DateTime]
|
19
|
+
attr_accessor :timestamp_start
|
20
|
+
|
21
|
+
# The timestamp when the status ended. The timestamp is in your
|
22
|
+
# system-configured time zone without UTC offset.
|
23
|
+
# @return [DateTime]
|
24
|
+
attr_accessor :timestamp_end
|
25
|
+
|
26
|
+
# Indicates whether the status has a duration.
|
27
|
+
# @return [Boolean]
|
28
|
+
attr_accessor :has_timestamp_end
|
29
|
+
|
30
|
+
# The category a status belongs to.
|
31
|
+
# @return [StatusCategoryEnum]
|
32
|
+
attr_accessor :category
|
33
|
+
|
34
|
+
# The status code.
|
35
|
+
# @return [Float]
|
36
|
+
attr_accessor :code
|
37
|
+
|
38
|
+
# A description of the status code.
|
39
|
+
# @return [String]
|
40
|
+
attr_accessor :message
|
41
|
+
|
42
|
+
# A user comment associated with the status.
|
43
|
+
# @return [String]
|
44
|
+
attr_accessor :comment
|
45
|
+
|
46
|
+
# The lost production in kWh associated with the status. This field
|
47
|
+
# will be null if the caller is not authorized for the system-configured
|
48
|
+
# lost production signal. The configured lost production signal is available
|
49
|
+
# via the `/configuration.json` endpoint (`DataSignalConfiguration` schema).
|
50
|
+
# @return [Float]
|
51
|
+
attr_accessor :lost_production
|
52
|
+
|
53
|
+
# The status category as defined by the IEC.
|
54
|
+
# @return [String]
|
55
|
+
attr_accessor :category_iec
|
56
|
+
|
57
|
+
# The status category as defined the availability contract assigned to the
|
58
|
+
# site.
|
59
|
+
# @return [Object]
|
60
|
+
attr_accessor :category_contract
|
61
|
+
|
62
|
+
# Statuses of the same type that have been grouped under this status.
|
63
|
+
# @return [List of StatusItem]
|
64
|
+
attr_accessor :sub_status
|
65
|
+
|
66
|
+
# Indicates whether the status has been acknowledged.
|
67
|
+
# @return [Boolean]
|
68
|
+
attr_accessor :acknowledged
|
69
|
+
|
70
|
+
# A mapping from model property names to API property names.
|
71
|
+
def self.names
|
72
|
+
@_hash = {} if @_hash.nil?
|
73
|
+
@_hash['device_id'] = 'deviceId'
|
74
|
+
@_hash['timestamp_start'] = 'timestampStart'
|
75
|
+
@_hash['timestamp_end'] = 'timestampEnd'
|
76
|
+
@_hash['has_timestamp_end'] = 'hasTimestampEnd'
|
77
|
+
@_hash['category'] = 'category'
|
78
|
+
@_hash['code'] = 'code'
|
79
|
+
@_hash['message'] = 'message'
|
80
|
+
@_hash['comment'] = 'comment'
|
81
|
+
@_hash['lost_production'] = 'lostProduction'
|
82
|
+
@_hash['category_iec'] = 'categoryIec'
|
83
|
+
@_hash['category_contract'] = 'categoryContract'
|
84
|
+
@_hash['sub_status'] = 'subStatus'
|
85
|
+
@_hash['acknowledged'] = 'acknowledged'
|
86
|
+
@_hash
|
87
|
+
end
|
88
|
+
|
89
|
+
def initialize(device_id = nil,
|
90
|
+
timestamp_start = nil,
|
91
|
+
timestamp_end = nil,
|
92
|
+
has_timestamp_end = nil,
|
93
|
+
category = nil,
|
94
|
+
code = nil,
|
95
|
+
message = nil,
|
96
|
+
comment = nil,
|
97
|
+
lost_production = nil,
|
98
|
+
category_iec = nil,
|
99
|
+
category_contract = nil,
|
100
|
+
sub_status = nil,
|
101
|
+
acknowledged = nil)
|
102
|
+
@device_id = device_id
|
103
|
+
@timestamp_start = timestamp_start
|
104
|
+
@timestamp_end = timestamp_end
|
105
|
+
@has_timestamp_end = has_timestamp_end
|
106
|
+
@category = category
|
107
|
+
@code = code
|
108
|
+
@message = message
|
109
|
+
@comment = comment
|
110
|
+
@lost_production = lost_production
|
111
|
+
@category_iec = category_iec
|
112
|
+
@category_contract = category_contract
|
113
|
+
@sub_status = sub_status
|
114
|
+
@acknowledged = acknowledged
|
115
|
+
end
|
116
|
+
|
117
|
+
# Creates an instance of the object from a hash.
|
118
|
+
def self.from_hash(hash)
|
119
|
+
return nil unless hash
|
120
|
+
|
121
|
+
# Extract variables from the hash.
|
122
|
+
device_id = hash['deviceId']
|
123
|
+
timestamp_start = APIHelper.rfc3339(hash['timestampStart']) if
|
124
|
+
hash['timestampStart']
|
125
|
+
timestamp_end = APIHelper.rfc3339(hash['timestampEnd']) if
|
126
|
+
hash['timestampEnd']
|
127
|
+
has_timestamp_end = hash['hasTimestampEnd']
|
128
|
+
category = hash['category']
|
129
|
+
code = hash['code']
|
130
|
+
message = hash['message']
|
131
|
+
comment = hash['comment']
|
132
|
+
lost_production = hash['lostProduction']
|
133
|
+
category_iec = hash['categoryIec']
|
134
|
+
category_contract = hash['categoryContract']
|
135
|
+
# Parameter is an array, so we need to iterate through it
|
136
|
+
sub_status = nil
|
137
|
+
unless hash['subStatus'].nil?
|
138
|
+
sub_status = []
|
139
|
+
hash['subStatus'].each do |structure|
|
140
|
+
sub_status << (StatusItem.from_hash(structure) if structure)
|
141
|
+
end
|
142
|
+
end
|
143
|
+
acknowledged = hash['acknowledged']
|
144
|
+
|
145
|
+
# Create object from extracted values.
|
146
|
+
StatusItem.new(device_id,
|
147
|
+
timestamp_start,
|
148
|
+
timestamp_end,
|
149
|
+
has_timestamp_end,
|
150
|
+
category,
|
151
|
+
code,
|
152
|
+
message,
|
153
|
+
comment,
|
154
|
+
lost_production,
|
155
|
+
category_iec,
|
156
|
+
category_contract,
|
157
|
+
sub_status,
|
158
|
+
acknowledged)
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|