ev-recharge-sdk 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.
Files changed (105) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +92 -0
  4. data/lib/shell_ev/api_helper.rb +10 -0
  5. data/lib/shell_ev/client.rb +77 -0
  6. data/lib/shell_ev/configuration.rb +110 -0
  7. data/lib/shell_ev/controllers/base_controller.rb +66 -0
  8. data/lib/shell_ev/controllers/charging_controller.rb +216 -0
  9. data/lib/shell_ev/controllers/locations_controller.rb +352 -0
  10. data/lib/shell_ev/controllers/o_auth_authorization_controller.rb +42 -0
  11. data/lib/shell_ev/exceptions/api_exception.rb +10 -0
  12. data/lib/shell_ev/exceptions/bad_request_exception.rb +37 -0
  13. data/lib/shell_ev/exceptions/http401_error_response_exception.rb +52 -0
  14. data/lib/shell_ev/exceptions/m400_error_response_error1_exception.rb +52 -0
  15. data/lib/shell_ev/exceptions/m401_error_response_error1_exception.rb +52 -0
  16. data/lib/shell_ev/exceptions/m404_error_response_error1_exception.rb +53 -0
  17. data/lib/shell_ev/exceptions/m405_error_response_error1_exception.rb +52 -0
  18. data/lib/shell_ev/exceptions/m429_error_response_error1_exception.rb +52 -0
  19. data/lib/shell_ev/exceptions/m500_error_response_error1_exception.rb +52 -0
  20. data/lib/shell_ev/exceptions/m503_error_response_error1_exception.rb +52 -0
  21. data/lib/shell_ev/exceptions/not_found_exception.rb +37 -0
  22. data/lib/shell_ev/exceptions/o_auth_provider_exception.rb +48 -0
  23. data/lib/shell_ev/exceptions/unauthorized_exception.rb +37 -0
  24. data/lib/shell_ev/http/auth/o_auth2.rb +90 -0
  25. data/lib/shell_ev/http/http_call_back.rb +10 -0
  26. data/lib/shell_ev/http/http_method_enum.rb +10 -0
  27. data/lib/shell_ev/http/http_request.rb +10 -0
  28. data/lib/shell_ev/http/http_response.rb +10 -0
  29. data/lib/shell_ev/models/accessibility.rb +60 -0
  30. data/lib/shell_ev/models/accessibility_status_enum.rb +29 -0
  31. data/lib/shell_ev/models/active_response200_json.rb +78 -0
  32. data/lib/shell_ev/models/active_response200_json_status_enum.rb +23 -0
  33. data/lib/shell_ev/models/address.rb +81 -0
  34. data/lib/shell_ev/models/base_model.rb +62 -0
  35. data/lib/shell_ev/models/chargesession_start_body.rb +59 -0
  36. data/lib/shell_ev/models/connector_vo.rb +134 -0
  37. data/lib/shell_ev/models/connector_vo_connector_type_enum.rb +71 -0
  38. data/lib/shell_ev/models/connector_vo_updated_by_enum.rb +29 -0
  39. data/lib/shell_ev/models/coordinates.rb +70 -0
  40. data/lib/shell_ev/models/data_active.rb +153 -0
  41. data/lib/shell_ev/models/data_active_session_code_enum.rb +44 -0
  42. data/lib/shell_ev/models/data_active_session_state_enum.rb +35 -0
  43. data/lib/shell_ev/models/data_retrieve.rb +152 -0
  44. data/lib/shell_ev/models/data_retrieve_session_code_enum.rb +44 -0
  45. data/lib/shell_ev/models/data_retrieve_session_state_enum.rb +35 -0
  46. data/lib/shell_ev/models/electrical_properties.rb +81 -0
  47. data/lib/shell_ev/models/electrical_properties_power_type_enum.rb +26 -0
  48. data/lib/shell_ev/models/env_enum.rb +23 -0
  49. data/lib/shell_ev/models/evse_vo.rb +143 -0
  50. data/lib/shell_ev/models/evse_vo_authorization_methods_enum.rb +26 -0
  51. data/lib/shell_ev/models/evse_vo_status_enum.rb +29 -0
  52. data/lib/shell_ev/models/get_charge_session_retrieve_response200_json.rb +78 -0
  53. data/lib/shell_ev/models/get_charge_session_retrieve_response200_json_status_enum.rb +23 -0
  54. data/lib/shell_ev/models/get_locations_list_authorization_methods_enum.rb +26 -0
  55. data/lib/shell_ev/models/get_locations_list_connector_types_enum.rb +71 -0
  56. data/lib/shell_ev/models/get_locations_list_evse_status_enum.rb +29 -0
  57. data/lib/shell_ev/models/get_markers_list_authorization_methods_enum.rb +26 -0
  58. data/lib/shell_ev/models/get_markers_list_connector_types_enum.rb +71 -0
  59. data/lib/shell_ev/models/get_markers_list_evse_status_enum.rb +29 -0
  60. data/lib/shell_ev/models/get_nearby_locations_authorization_methods_enum.rb +26 -0
  61. data/lib/shell_ev/models/get_nearby_locations_connector_types_enum.rb +71 -0
  62. data/lib/shell_ev/models/get_nearby_locations_evse_status_enum.rb +29 -0
  63. data/lib/shell_ev/models/inline_response202.rb +76 -0
  64. data/lib/shell_ev/models/inline_response2021.rb +58 -0
  65. data/lib/shell_ev/models/inline_response2021_status_enum.rb +23 -0
  66. data/lib/shell_ev/models/inline_response202_data.rb +48 -0
  67. data/lib/shell_ev/models/inline_response202_status_enum.rb +23 -0
  68. data/lib/shell_ev/models/location_respone_object.rb +172 -0
  69. data/lib/shell_ev/models/m400_error_response.rb +78 -0
  70. data/lib/shell_ev/models/m400_error_response_error.rb +80 -0
  71. data/lib/shell_ev/models/m401_error_response.rb +78 -0
  72. data/lib/shell_ev/models/m401_error_response_error.rb +80 -0
  73. data/lib/shell_ev/models/m404_error_response.rb +79 -0
  74. data/lib/shell_ev/models/m404_error_response_error.rb +80 -0
  75. data/lib/shell_ev/models/m405_error_response.rb +78 -0
  76. data/lib/shell_ev/models/m405_error_response_error.rb +80 -0
  77. data/lib/shell_ev/models/m429_error_response.rb +78 -0
  78. data/lib/shell_ev/models/m429_error_response_error.rb +80 -0
  79. data/lib/shell_ev/models/m500_error_response.rb +78 -0
  80. data/lib/shell_ev/models/m500_error_response_error.rb +80 -0
  81. data/lib/shell_ev/models/m503_error_response.rb +78 -0
  82. data/lib/shell_ev/models/m503_error_response_error.rb +80 -0
  83. data/lib/shell_ev/models/multi_location_marker.rb +126 -0
  84. data/lib/shell_ev/models/o_auth_provider_error_enum.rb +45 -0
  85. data/lib/shell_ev/models/o_auth_token.rb +100 -0
  86. data/lib/shell_ev/models/opening_hours_object.rb +70 -0
  87. data/lib/shell_ev/models/opening_hours_object_week_day_enum.rb +38 -0
  88. data/lib/shell_ev/models/response_base_status_enum.rb +26 -0
  89. data/lib/shell_ev/models/response_error401_all_of1.rb +57 -0
  90. data/lib/shell_ev/models/response_error401_all_of1_errors_items.rb +80 -0
  91. data/lib/shell_ev/models/single_location_marker.rb +157 -0
  92. data/lib/shell_ev/models/single_location_marker_authorization_methods_items_enum.rb +26 -0
  93. data/lib/shell_ev/models/single_location_marker_status_enum.rb +30 -0
  94. data/lib/shell_ev/models/stop_charge_session_request_body_json.rb +48 -0
  95. data/lib/shell_ev/models/success_response.rb +58 -0
  96. data/lib/shell_ev/models/tariff_vo.rb +111 -0
  97. data/lib/shell_ev/models/tariff_vo_updated_by_enum.rb +29 -0
  98. data/lib/shell_ev/utilities/date_time_helper.rb +11 -0
  99. data/lib/shell_ev/utilities/file_wrapper.rb +16 -0
  100. data/lib/shell_ev/utilities/union_type_lookup.rb +38 -0
  101. data/lib/shell_ev.rb +125 -0
  102. data/test/controllers/controller_test_base.rb +34 -0
  103. data/test/controllers/test_charging_controller.rb +78 -0
  104. data/test/http_response_catcher.rb +19 -0
  105. metadata +224 -0
@@ -0,0 +1,26 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellEv
7
+ # SingleLocationMarkerAuthorizationMethodsItems.
8
+ class SingleLocationMarkerAuthorizationMethodsItemsEnum
9
+ SINGLE_LOCATION_MARKER_AUTHORIZATION_METHODS_ITEMS_ENUM = [
10
+ # TODO: Write general description for NEWMOTIONAPP
11
+ NEWMOTIONAPP = 'NewMotionApp'.freeze,
12
+
13
+ # TODO: Write general description for RFIDTOKEN
14
+ RFIDTOKEN = 'RFIDToken'.freeze,
15
+
16
+ # TODO: Write general description for PNC
17
+ PNC = 'PnC'.freeze
18
+ ].freeze
19
+
20
+ def self.validate(value)
21
+ return false if value.nil?
22
+
23
+ SINGLE_LOCATION_MARKER_AUTHORIZATION_METHODS_ITEMS_ENUM.include?(value)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,30 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellEv
7
+ # Minimum of all status values in the Marker, e.g. if at least one Evse in the
8
+ # Marker is available, the value will be available
9
+ class SingleLocationMarkerStatusEnum
10
+ SINGLE_LOCATION_MARKER_STATUS_ENUM = [
11
+ # TODO: Write general description for AVAILABLE
12
+ AVAILABLE = 'Available'.freeze,
13
+
14
+ # TODO: Write general description for OCCUPIED
15
+ OCCUPIED = 'Occupied'.freeze,
16
+
17
+ # TODO: Write general description for UNAVAILABLE
18
+ UNAVAILABLE = 'Unavailable'.freeze,
19
+
20
+ # TODO: Write general description for UNKNOWN
21
+ UNKNOWN = 'Unknown'.freeze
22
+ ].freeze
23
+
24
+ def self.validate(value)
25
+ return false if value.nil?
26
+
27
+ SINGLE_LOCATION_MARKER_STATUS_ENUM.include?(value)
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,48 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellEv
7
+ # StopChargeSessionRequestBodyJson Model.
8
+ class StopChargeSessionRequestBodyJson < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Session Id is to be fetched
13
+ # @return [String]
14
+ attr_accessor :sesssion_id
15
+
16
+ # A mapping from model property names to API property names.
17
+ def self.names
18
+ @_hash = {} if @_hash.nil?
19
+ @_hash['sesssion_id'] = 'SesssionId'
20
+ @_hash
21
+ end
22
+
23
+ # An array for optional fields
24
+ def self.optionals
25
+ []
26
+ end
27
+
28
+ # An array for nullable fields
29
+ def self.nullables
30
+ []
31
+ end
32
+
33
+ def initialize(sesssion_id = nil)
34
+ @sesssion_id = sesssion_id
35
+ end
36
+
37
+ # Creates an instance of the object from a hash.
38
+ def self.from_hash(hash)
39
+ return nil unless hash
40
+
41
+ # Extract variables from the hash.
42
+ sesssion_id = hash.key?('SesssionId') ? hash['SesssionId'] : nil
43
+
44
+ # Create object from extracted values.
45
+ StopChargeSessionRequestBodyJson.new(sesssion_id)
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,58 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellEv
7
+ # SuccessResponse Model.
8
+ class SuccessResponse < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # A unique request id in GUID format. The value is written to the Shell API
13
+ # Platform audit log for end to end traceability of a request.
14
+ # @return [String]
15
+ attr_accessor :request_id
16
+
17
+ # Indicates overall status of the request
18
+ # @return [ResponseBaseStatusEnum]
19
+ attr_accessor :status
20
+
21
+ # A mapping from model property names to API property names.
22
+ def self.names
23
+ @_hash = {} if @_hash.nil?
24
+ @_hash['request_id'] = 'RequestId'
25
+ @_hash['status'] = 'Status'
26
+ @_hash
27
+ end
28
+
29
+ # An array for optional fields
30
+ def self.optionals
31
+ []
32
+ end
33
+
34
+ # An array for nullable fields
35
+ def self.nullables
36
+ []
37
+ end
38
+
39
+ def initialize(request_id = nil,
40
+ status = nil)
41
+ @request_id = request_id
42
+ @status = status
43
+ end
44
+
45
+ # Creates an instance of the object from a hash.
46
+ def self.from_hash(hash)
47
+ return nil unless hash
48
+
49
+ # Extract variables from the hash.
50
+ request_id = hash.key?('RequestId') ? hash['RequestId'] : nil
51
+ status = hash.key?('Status') ? hash['Status'] : nil
52
+
53
+ # Create object from extracted values.
54
+ SuccessResponse.new(request_id,
55
+ status)
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,111 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellEv
7
+ # Tariff details for charging on this Connector
8
+ class TariffVO < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Tariff to start a charging session
13
+ # @return [Float]
14
+ attr_accessor :start_fee
15
+
16
+ # Tariff per minute of charging time
17
+ # @return [Float]
18
+ attr_accessor :per_minute
19
+
20
+ # Tariff per kWh of energy consumed
21
+ # @return [Float]
22
+ attr_accessor :per_k_wh
23
+
24
+ # ISO 4217 Curreny Code of the local currency.
25
+ # @return [String]
26
+ attr_accessor :currency
27
+
28
+ # ISO8601-compliant UTC datetime of the last update of the Tariff
29
+ # @return [String]
30
+ attr_accessor :updated
31
+
32
+ # Source of the last update of the tariff details
33
+ # @return [TariffVOUpdatedByEnum]
34
+ attr_accessor :updated_by
35
+
36
+ # Tariff structure that this tariff belongs to, typically Default unless
37
+ # specific tariff is defined for provider
38
+ # @return [String]
39
+ attr_accessor :structure
40
+
41
+ # A mapping from model property names to API property names.
42
+ def self.names
43
+ @_hash = {} if @_hash.nil?
44
+ @_hash['start_fee'] = 'startFee'
45
+ @_hash['per_minute'] = 'perMinute'
46
+ @_hash['per_k_wh'] = 'perKWh'
47
+ @_hash['currency'] = 'currency'
48
+ @_hash['updated'] = 'updated'
49
+ @_hash['updated_by'] = 'updatedBy'
50
+ @_hash['structure'] = 'structure'
51
+ @_hash
52
+ end
53
+
54
+ # An array for optional fields
55
+ def self.optionals
56
+ %w[
57
+ start_fee
58
+ per_minute
59
+ per_k_wh
60
+ currency
61
+ updated
62
+ updated_by
63
+ structure
64
+ ]
65
+ end
66
+
67
+ # An array for nullable fields
68
+ def self.nullables
69
+ []
70
+ end
71
+
72
+ def initialize(start_fee = SKIP,
73
+ per_minute = SKIP,
74
+ per_k_wh = SKIP,
75
+ currency = SKIP,
76
+ updated = SKIP,
77
+ updated_by = SKIP,
78
+ structure = SKIP)
79
+ @start_fee = start_fee unless start_fee == SKIP
80
+ @per_minute = per_minute unless per_minute == SKIP
81
+ @per_k_wh = per_k_wh unless per_k_wh == SKIP
82
+ @currency = currency unless currency == SKIP
83
+ @updated = updated unless updated == SKIP
84
+ @updated_by = updated_by unless updated_by == SKIP
85
+ @structure = structure unless structure == SKIP
86
+ end
87
+
88
+ # Creates an instance of the object from a hash.
89
+ def self.from_hash(hash)
90
+ return nil unless hash
91
+
92
+ # Extract variables from the hash.
93
+ start_fee = hash.key?('startFee') ? hash['startFee'] : SKIP
94
+ per_minute = hash.key?('perMinute') ? hash['perMinute'] : SKIP
95
+ per_k_wh = hash.key?('perKWh') ? hash['perKWh'] : SKIP
96
+ currency = hash.key?('currency') ? hash['currency'] : SKIP
97
+ updated = hash.key?('updated') ? hash['updated'] : SKIP
98
+ updated_by = hash.key?('updatedBy') ? hash['updatedBy'] : SKIP
99
+ structure = hash.key?('structure') ? hash['structure'] : SKIP
100
+
101
+ # Create object from extracted values.
102
+ TariffVO.new(start_fee,
103
+ per_minute,
104
+ per_k_wh,
105
+ currency,
106
+ updated,
107
+ updated_by,
108
+ structure)
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,29 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellEv
7
+ # Source of the last update of the tariff details
8
+ class TariffVOUpdatedByEnum
9
+ TARIFF_VO_UPDATED_BY_ENUM = [
10
+ # TODO: Write general description for FEED
11
+ FEED = 'Feed'.freeze,
12
+
13
+ # TODO: Write general description for ADMIN
14
+ ADMIN = 'Admin'.freeze,
15
+
16
+ # TODO: Write general description for TARIFFSERVICE
17
+ TARIFFSERVICE = 'TariffService'.freeze,
18
+
19
+ # TODO: Write general description for DEFAULTS
20
+ DEFAULTS = 'Defaults'.freeze
21
+ ].freeze
22
+
23
+ def self.validate(value)
24
+ return false if value.nil?
25
+
26
+ TARIFF_VO_UPDATED_BY_ENUM.include?(value)
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,11 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ require 'date'
7
+ module ShellEv
8
+ # A utility that supports dateTime conversion to different formats
9
+ class DateTimeHelper < CoreLibrary::DateTimeHelper
10
+ end
11
+ end
@@ -0,0 +1,16 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellEv
7
+ # A utility to allow users to set the content-type for files
8
+ class FileWrapper < CoreLibrary::FileWrapper
9
+ # The constructor.
10
+ # @param [File] file The file to be sent in the request.
11
+ # @param [string] content_type The content type of the provided file.
12
+ def initialize(file, content_type: 'application/octet-stream')
13
+ super
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,38 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module ShellEv
7
+ # The `UnionTypeLookUp` class serves as a utility class for
8
+ # storing and managing type combinator templates. It acts as a container for the templates
9
+ # used in handling various oneof/anyof instances within the sdk.
10
+ class UnionTypeLookUp
11
+ include CoreLibrary
12
+ # rubocop:disable Lint/RedundantCopDisableDirective, Style/HashSyntax, Layout/FirstArgumentIndentation
13
+ def self.union_types
14
+ {
15
+ :MarkersResponse => OneOf.new(
16
+ [
17
+ LeafType.new(SingleLocationMarker, UnionTypeContext.new(
18
+ discriminator_value: 'SingleLocation',
19
+ discriminator: 'markerType'
20
+ )),
21
+ LeafType.new(MultiLocationMarker, UnionTypeContext.new(
22
+ discriminator_value: 'MultiLocation',
23
+ discriminator: 'markerType'
24
+ ))
25
+ ],
26
+ UnionTypeContext.new(
27
+ is_array: true
28
+ )
29
+ )
30
+ }
31
+ end
32
+ # rubocop:enable Lint/RedundantCopDisableDirective, Style/HashSyntax, Layout/FirstArgumentIndentation
33
+
34
+ def self.get(name)
35
+ UnionTypeLookUp.union_types[name]
36
+ end
37
+ end
38
+ end
data/lib/shell_ev.rb ADDED
@@ -0,0 +1,125 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ require 'date'
7
+ require 'json'
8
+
9
+ require 'apimatic_core_interfaces'
10
+ require 'apimatic_core'
11
+ require 'apimatic_faraday_client_adapter'
12
+
13
+ require_relative 'shell_ev/api_helper'
14
+ require_relative 'shell_ev/client'
15
+
16
+ # Utilities
17
+ require_relative 'shell_ev/utilities/file_wrapper'
18
+ require_relative 'shell_ev/utilities/date_time_helper'
19
+ require_relative 'shell_ev/utilities/union_type_lookup'
20
+
21
+ # Http
22
+ require_relative 'shell_ev/http/http_call_back'
23
+ require_relative 'shell_ev/http/http_method_enum'
24
+ require_relative 'shell_ev/http/http_request'
25
+ require_relative 'shell_ev/http/http_response'
26
+
27
+ # Logger
28
+ require_relative 'shell_ev/http/auth/o_auth2'
29
+
30
+ # Models
31
+ require_relative 'shell_ev/models/base_model'
32
+ require_relative 'shell_ev/models/data_retrieve'
33
+ require_relative 'shell_ev/models/data_active'
34
+ require_relative 'shell_ev/models/m400_error_response'
35
+ require_relative 'shell_ev/models/m401_error_response'
36
+ require_relative 'shell_ev/models/m404_error_response'
37
+ require_relative 'shell_ev/models/m405_error_response'
38
+ require_relative 'shell_ev/models/m429_error_response'
39
+ require_relative 'shell_ev/models/m500_error_response'
40
+ require_relative 'shell_ev/models/m503_error_response'
41
+ require_relative 'shell_ev/models/m400_error_response_error'
42
+ require_relative 'shell_ev/models/m401_error_response_error'
43
+ require_relative 'shell_ev/models/m404_error_response_error'
44
+ require_relative 'shell_ev/models/m405_error_response_error'
45
+ require_relative 'shell_ev/models/m429_error_response_error'
46
+ require_relative 'shell_ev/models/m500_error_response_error'
47
+ require_relative 'shell_ev/models/m503_error_response_error'
48
+ require_relative 'shell_ev/models/chargesession_start_body'
49
+ require_relative 'shell_ev/models/inline_response202'
50
+ require_relative 'shell_ev/models/inline_response2021'
51
+ require_relative 'shell_ev/models/inline_response202_data'
52
+ require_relative 'shell_ev/models/success_response'
53
+ require_relative 'shell_ev/models/stop_charge_session_request_body_json'
54
+ require_relative 'shell_ev/models/get_charge_session_retrieve_response200_json'
55
+ require_relative 'shell_ev/models/active_response200_json'
56
+ require_relative 'shell_ev/models/response_error401_all_of1'
57
+ require_relative 'shell_ev/models/response_error401_all_of1_errors_items'
58
+ require_relative 'shell_ev/models/location_respone_object'
59
+ require_relative 'shell_ev/models/coordinates'
60
+ require_relative 'shell_ev/models/address'
61
+ require_relative 'shell_ev/models/accessibility'
62
+ require_relative 'shell_ev/models/opening_hours_object'
63
+ require_relative 'shell_ev/models/evse_vo'
64
+ require_relative 'shell_ev/models/connector_vo'
65
+ require_relative 'shell_ev/models/tariff_vo'
66
+ require_relative 'shell_ev/models/electrical_properties'
67
+ require_relative 'shell_ev/models/single_location_marker'
68
+ require_relative 'shell_ev/models/multi_location_marker'
69
+ require_relative 'shell_ev/models/o_auth_token'
70
+ require_relative 'shell_ev/models/' \
71
+ 'get_charge_session_retrieve_response200_json_status_enum'
72
+ require_relative 'shell_ev/models/active_response200_json_status_enum'
73
+ require_relative 'shell_ev/models/data_retrieve_session_state_enum'
74
+ require_relative 'shell_ev/models/data_retrieve_session_code_enum'
75
+ require_relative 'shell_ev/models/data_active_session_state_enum'
76
+ require_relative 'shell_ev/models/data_active_session_code_enum'
77
+ require_relative 'shell_ev/models/inline_response202_status_enum'
78
+ require_relative 'shell_ev/models/inline_response2021_status_enum'
79
+ require_relative 'shell_ev/models/response_base_status_enum'
80
+ require_relative 'shell_ev/models/env_enum'
81
+ require_relative 'shell_ev/models/' \
82
+ 'single_location_marker_authorization_methods_items_enum'
83
+ require_relative 'shell_ev/models/get_locations_list_evse_status_enum'
84
+ require_relative 'shell_ev/models/get_locations_list_connector_types_enum'
85
+ require_relative 'shell_ev/models/get_locations_list_authorization_methods_enum'
86
+ require_relative 'shell_ev/models/get_nearby_locations_evse_status_enum'
87
+ require_relative 'shell_ev/models/get_nearby_locations_connector_types_enum'
88
+ require_relative 'shell_ev/models/' \
89
+ 'get_nearby_locations_authorization_methods_enum'
90
+ require_relative 'shell_ev/models/get_markers_list_evse_status_enum'
91
+ require_relative 'shell_ev/models/get_markers_list_connector_types_enum'
92
+ require_relative 'shell_ev/models/get_markers_list_authorization_methods_enum'
93
+ require_relative 'shell_ev/models/accessibility_status_enum'
94
+ require_relative 'shell_ev/models/evse_vo_status_enum'
95
+ require_relative 'shell_ev/models/evse_vo_authorization_methods_enum'
96
+ require_relative 'shell_ev/models/connector_vo_connector_type_enum'
97
+ require_relative 'shell_ev/models/connector_vo_updated_by_enum'
98
+ require_relative 'shell_ev/models/tariff_vo_updated_by_enum'
99
+ require_relative 'shell_ev/models/electrical_properties_power_type_enum'
100
+ require_relative 'shell_ev/models/single_location_marker_status_enum'
101
+ require_relative 'shell_ev/models/opening_hours_object_week_day_enum'
102
+ require_relative 'shell_ev/models/o_auth_provider_error_enum'
103
+
104
+ # Exceptions
105
+ require_relative 'shell_ev/exceptions/api_exception'
106
+ require_relative 'shell_ev/exceptions/http401_error_response_exception'
107
+ require_relative 'shell_ev/exceptions/m400_error_response_error1_exception'
108
+ require_relative 'shell_ev/exceptions/m404_error_response_error1_exception'
109
+ require_relative 'shell_ev/exceptions/m405_error_response_error1_exception'
110
+ require_relative 'shell_ev/exceptions/m429_error_response_error1_exception'
111
+ require_relative 'shell_ev/exceptions/m500_error_response_error1_exception'
112
+ require_relative 'shell_ev/exceptions/m503_error_response_error1_exception'
113
+ require_relative 'shell_ev/exceptions/m401_error_response_error1_exception'
114
+ require_relative 'shell_ev/exceptions/unauthorized_exception'
115
+ require_relative 'shell_ev/exceptions/bad_request_exception'
116
+ require_relative 'shell_ev/exceptions/not_found_exception'
117
+ require_relative 'shell_ev/exceptions/o_auth_provider_exception'
118
+
119
+ require_relative 'shell_ev/configuration'
120
+
121
+ # Controllers
122
+ require_relative 'shell_ev/controllers/base_controller'
123
+ require_relative 'shell_ev/controllers/charging_controller'
124
+ require_relative 'shell_ev/controllers/locations_controller'
125
+ require_relative 'shell_ev/controllers/o_auth_authorization_controller'
@@ -0,0 +1,34 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ require 'json'
7
+ require 'minitest/autorun'
8
+ require 'minitest/hell'
9
+ require 'minitest/pride'
10
+ require 'minitest/proveit'
11
+ require 'shell_ev'
12
+ require_relative '../http_response_catcher'
13
+
14
+ class ControllerTestBase < Minitest::Test
15
+ parallelize_me!
16
+ include ShellEv
17
+ include CoreLibrary
18
+
19
+ # Create configuration and set any test parameters
20
+ def create_configuration
21
+ Configuration.new(http_callback: HttpResponseCatcher.new)
22
+ end
23
+
24
+ # Initializes the base test controller
25
+ def setup_class
26
+ _config = create_configuration
27
+ @client = Client.new(config: _config)
28
+
29
+ bearer_auth_token = @client.bearer_auth.fetch_token()
30
+ client_credentials_auth_credentials = _config.client_credentials_auth_credentials.clone_with(o_auth_token: bearer_auth_token)
31
+ _config = _config.clone_with(client_credentials_auth_credentials: client_credentials_auth_credentials)
32
+ @client = Client.new(config: _config)
33
+ end
34
+ end
@@ -0,0 +1,78 @@
1
+ # shell_ev
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 ChargingControllerTests < ControllerTestBase
9
+ # Called only once for the class before any test has executed
10
+ def setup
11
+ setup_class
12
+ @controller = @client.charging
13
+ @response_catcher = @controller.http_call_back
14
+ end
15
+
16
+ # This API initiates to start a session on a EVSE (Electric Vehicle Supply Equipement). When the EV Charge Card number and the unique EVSE ID on the location is provided, the session is initiated.
17
+ #
18
+ #Please note that this is an asynchronous request, the request will be passed on to the operator/platform to be processed further.
19
+ #
20
+ def test_start_charge_session
21
+ # Parameters for the API call
22
+ request_id = 'eb621f45-a543-4d9a-a934-2f223b263c42'
23
+ body = nil
24
+
25
+ # Perform the API call through the SDK function
26
+ result = @controller.start_charge_session(request_id, body: body)
27
+
28
+ # Test response code
29
+ assert_equal(200, @response_catcher.response.status_code)
30
+
31
+ # Test headers
32
+ expected_headers = {}
33
+ expected_headers['content-type'] = 'application/json'
34
+
35
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
36
+
37
+ # Test whether the captured response is as we expected
38
+ refute_nil(result)
39
+ expected_body = JSON.parse(
40
+ '{"RequestId":"9d2dee33-7803-485a-a2b1-2c7538e597ee","Status":"SUCCESS",'\
41
+ '"Data":[{"SessionId":"c3e332f0-1bb2-4f50-a96b-e075bbb71e68"}]}'
42
+ )
43
+ received_body = JSON.parse(@response_catcher.response.raw_body)
44
+ assert(ComparisonHelper.match_body(expected_body, received_body))
45
+ end
46
+
47
+ # This API retrieves the list of active sessions for a given set of EMAIds
48
+ def test_active
49
+ # Parameters for the API call
50
+ ema_id = 'NL-TNM-C0216599X-A'
51
+ request_id = 'eb621f45-a543-4d9a-a934-2f223b263c42'
52
+
53
+ # Perform the API call through the SDK function
54
+ result = @controller.active(ema_id, request_id)
55
+
56
+ # Test response code
57
+ assert_equal(200, @response_catcher.response.status_code)
58
+
59
+ # Test headers
60
+ expected_headers = {}
61
+ expected_headers['content-type'] = 'application/json'
62
+
63
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
64
+
65
+ # Test whether the captured response is as we expected
66
+ refute_nil(result)
67
+ expected_body = JSON.parse(
68
+ '{"RequestId":"9d2dee33-7803-485a-a2b1-2c7538e597ee","Status":"SUCCESS",'\
69
+ '"Data":[{"EmaId":"NL-TNM-C0216599X-A","EvseId":"NL*TNM*EVIRTUALCP0002*0'\
70
+ '","Id":"260f17a9-52d4-4b40-ae74-83832b538975","StartedAt":"2022-10-21T0'\
71
+ '9:11:23.455Z","SessionState":"started","SessionCode":null,"SessionMessa'\
72
+ 'ge":null,"UserId":"96f69b3b-8ad4-487a-baaa-f1d3db741e88"}]}'
73
+ )
74
+ received_body = JSON.parse(@response_catcher.response.raw_body)
75
+ assert(ComparisonHelper.match_body(expected_body, received_body))
76
+ end
77
+
78
+ end
@@ -0,0 +1,19 @@
1
+ # shell_ev
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ class HttpResponseCatcher < ShellEv::HttpCallBack
7
+ attr_accessor :response
8
+
9
+ def on_before_request(request)
10
+ end
11
+
12
+ # Catching the response
13
+ def on_after_response(response)
14
+ @response = response
15
+ end
16
+ end
17
+
18
+
19
+