ev-recharge-sdk 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|