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.
- checksums.yaml +7 -0
- data/LICENSE +28 -0
- data/README.md +92 -0
- data/lib/shell_ev/api_helper.rb +10 -0
- data/lib/shell_ev/client.rb +77 -0
- data/lib/shell_ev/configuration.rb +110 -0
- data/lib/shell_ev/controllers/base_controller.rb +66 -0
- data/lib/shell_ev/controllers/charging_controller.rb +216 -0
- data/lib/shell_ev/controllers/locations_controller.rb +352 -0
- data/lib/shell_ev/controllers/o_auth_authorization_controller.rb +42 -0
- data/lib/shell_ev/exceptions/api_exception.rb +10 -0
- data/lib/shell_ev/exceptions/bad_request_exception.rb +37 -0
- data/lib/shell_ev/exceptions/http401_error_response_exception.rb +52 -0
- data/lib/shell_ev/exceptions/m400_error_response_error1_exception.rb +52 -0
- data/lib/shell_ev/exceptions/m401_error_response_error1_exception.rb +52 -0
- data/lib/shell_ev/exceptions/m404_error_response_error1_exception.rb +53 -0
- data/lib/shell_ev/exceptions/m405_error_response_error1_exception.rb +52 -0
- data/lib/shell_ev/exceptions/m429_error_response_error1_exception.rb +52 -0
- data/lib/shell_ev/exceptions/m500_error_response_error1_exception.rb +52 -0
- data/lib/shell_ev/exceptions/m503_error_response_error1_exception.rb +52 -0
- data/lib/shell_ev/exceptions/not_found_exception.rb +37 -0
- data/lib/shell_ev/exceptions/o_auth_provider_exception.rb +48 -0
- data/lib/shell_ev/exceptions/unauthorized_exception.rb +37 -0
- data/lib/shell_ev/http/auth/o_auth2.rb +90 -0
- data/lib/shell_ev/http/http_call_back.rb +10 -0
- data/lib/shell_ev/http/http_method_enum.rb +10 -0
- data/lib/shell_ev/http/http_request.rb +10 -0
- data/lib/shell_ev/http/http_response.rb +10 -0
- data/lib/shell_ev/models/accessibility.rb +60 -0
- data/lib/shell_ev/models/accessibility_status_enum.rb +29 -0
- data/lib/shell_ev/models/active_response200_json.rb +78 -0
- data/lib/shell_ev/models/active_response200_json_status_enum.rb +23 -0
- data/lib/shell_ev/models/address.rb +81 -0
- data/lib/shell_ev/models/base_model.rb +62 -0
- data/lib/shell_ev/models/chargesession_start_body.rb +59 -0
- data/lib/shell_ev/models/connector_vo.rb +134 -0
- data/lib/shell_ev/models/connector_vo_connector_type_enum.rb +71 -0
- data/lib/shell_ev/models/connector_vo_updated_by_enum.rb +29 -0
- data/lib/shell_ev/models/coordinates.rb +70 -0
- data/lib/shell_ev/models/data_active.rb +153 -0
- data/lib/shell_ev/models/data_active_session_code_enum.rb +44 -0
- data/lib/shell_ev/models/data_active_session_state_enum.rb +35 -0
- data/lib/shell_ev/models/data_retrieve.rb +152 -0
- data/lib/shell_ev/models/data_retrieve_session_code_enum.rb +44 -0
- data/lib/shell_ev/models/data_retrieve_session_state_enum.rb +35 -0
- data/lib/shell_ev/models/electrical_properties.rb +81 -0
- data/lib/shell_ev/models/electrical_properties_power_type_enum.rb +26 -0
- data/lib/shell_ev/models/env_enum.rb +23 -0
- data/lib/shell_ev/models/evse_vo.rb +143 -0
- data/lib/shell_ev/models/evse_vo_authorization_methods_enum.rb +26 -0
- data/lib/shell_ev/models/evse_vo_status_enum.rb +29 -0
- data/lib/shell_ev/models/get_charge_session_retrieve_response200_json.rb +78 -0
- data/lib/shell_ev/models/get_charge_session_retrieve_response200_json_status_enum.rb +23 -0
- data/lib/shell_ev/models/get_locations_list_authorization_methods_enum.rb +26 -0
- data/lib/shell_ev/models/get_locations_list_connector_types_enum.rb +71 -0
- data/lib/shell_ev/models/get_locations_list_evse_status_enum.rb +29 -0
- data/lib/shell_ev/models/get_markers_list_authorization_methods_enum.rb +26 -0
- data/lib/shell_ev/models/get_markers_list_connector_types_enum.rb +71 -0
- data/lib/shell_ev/models/get_markers_list_evse_status_enum.rb +29 -0
- data/lib/shell_ev/models/get_nearby_locations_authorization_methods_enum.rb +26 -0
- data/lib/shell_ev/models/get_nearby_locations_connector_types_enum.rb +71 -0
- data/lib/shell_ev/models/get_nearby_locations_evse_status_enum.rb +29 -0
- data/lib/shell_ev/models/inline_response202.rb +76 -0
- data/lib/shell_ev/models/inline_response2021.rb +58 -0
- data/lib/shell_ev/models/inline_response2021_status_enum.rb +23 -0
- data/lib/shell_ev/models/inline_response202_data.rb +48 -0
- data/lib/shell_ev/models/inline_response202_status_enum.rb +23 -0
- data/lib/shell_ev/models/location_respone_object.rb +172 -0
- data/lib/shell_ev/models/m400_error_response.rb +78 -0
- data/lib/shell_ev/models/m400_error_response_error.rb +80 -0
- data/lib/shell_ev/models/m401_error_response.rb +78 -0
- data/lib/shell_ev/models/m401_error_response_error.rb +80 -0
- data/lib/shell_ev/models/m404_error_response.rb +79 -0
- data/lib/shell_ev/models/m404_error_response_error.rb +80 -0
- data/lib/shell_ev/models/m405_error_response.rb +78 -0
- data/lib/shell_ev/models/m405_error_response_error.rb +80 -0
- data/lib/shell_ev/models/m429_error_response.rb +78 -0
- data/lib/shell_ev/models/m429_error_response_error.rb +80 -0
- data/lib/shell_ev/models/m500_error_response.rb +78 -0
- data/lib/shell_ev/models/m500_error_response_error.rb +80 -0
- data/lib/shell_ev/models/m503_error_response.rb +78 -0
- data/lib/shell_ev/models/m503_error_response_error.rb +80 -0
- data/lib/shell_ev/models/multi_location_marker.rb +126 -0
- data/lib/shell_ev/models/o_auth_provider_error_enum.rb +45 -0
- data/lib/shell_ev/models/o_auth_token.rb +100 -0
- data/lib/shell_ev/models/opening_hours_object.rb +70 -0
- data/lib/shell_ev/models/opening_hours_object_week_day_enum.rb +38 -0
- data/lib/shell_ev/models/response_base_status_enum.rb +26 -0
- data/lib/shell_ev/models/response_error401_all_of1.rb +57 -0
- data/lib/shell_ev/models/response_error401_all_of1_errors_items.rb +80 -0
- data/lib/shell_ev/models/single_location_marker.rb +157 -0
- data/lib/shell_ev/models/single_location_marker_authorization_methods_items_enum.rb +26 -0
- data/lib/shell_ev/models/single_location_marker_status_enum.rb +30 -0
- data/lib/shell_ev/models/stop_charge_session_request_body_json.rb +48 -0
- data/lib/shell_ev/models/success_response.rb +58 -0
- data/lib/shell_ev/models/tariff_vo.rb +111 -0
- data/lib/shell_ev/models/tariff_vo_updated_by_enum.rb +29 -0
- data/lib/shell_ev/utilities/date_time_helper.rb +11 -0
- data/lib/shell_ev/utilities/file_wrapper.rb +16 -0
- data/lib/shell_ev/utilities/union_type_lookup.rb +38 -0
- data/lib/shell_ev.rb +125 -0
- data/test/controllers/controller_test_base.rb +34 -0
- data/test/controllers/test_charging_controller.rb +78 -0
- data/test/http_response_catcher.rb +19 -0
- 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
|
+
|