digital-payments-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 +85 -0
- data/lib/shell_ev/api_helper.rb +10 -0
- data/lib/shell_ev/client.rb +86 -0
- data/lib/shell_ev/configuration.rb +104 -0
- data/lib/shell_ev/controllers/base_controller.rb +66 -0
- data/lib/shell_ev/controllers/digital_payment_enablement_controller.rb +56 -0
- data/lib/shell_ev/controllers/fueling_controller.rb +126 -0
- data/lib/shell_ev/controllers/partner_notification_controller.rb +95 -0
- data/lib/shell_ev/controllers/shell_api_platform_security_authentication_controller.rb +44 -0
- data/lib/shell_ev/controllers/station_locator_controller.rb +76 -0
- data/lib/shell_ev/exceptions/access_token_error_exception.rb +37 -0
- data/lib/shell_ev/exceptions/api_exception.rb +10 -0
- data/lib/shell_ev/exceptions/cancel_fueling_error_response_error_exception.rb +64 -0
- data/lib/shell_ev/exceptions/mpp_acces_token_error_response_exception.rb +44 -0
- data/lib/shell_ev/exceptions/payment_enablement_error_response_exception.rb +37 -0
- data/lib/shell_ev/exceptions/station_locator_bad_request_exception.rb +38 -0
- data/lib/shell_ev/exceptions/station_locator_forbidden_exception.rb +38 -0
- data/lib/shell_ev/exceptions/station_locator_internal_server_error_exception.rb +38 -0
- data/lib/shell_ev/exceptions/station_locator_not_found_exception.rb +38 -0
- data/lib/shell_ev/exceptions/station_locator_unauthorized_exception.rb +38 -0
- data/lib/shell_ev/http/auth/mpp_token.rb +42 -0
- data/lib/shell_ev/http/auth/o_auth_token_post.rb +44 -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/access_token_response.rb +71 -0
- data/lib/shell_ev/models/around_location_array.rb +109 -0
- data/lib/shell_ev/models/around_location_array_data_items.rb +242 -0
- data/lib/shell_ev/models/around_location_array_data_items_loc.rb +99 -0
- data/lib/shell_ev/models/around_location_array_data_items_opening_hours_items.rb +148 -0
- data/lib/shell_ev/models/base_model.rb +62 -0
- data/lib/shell_ev/models/cancel_fueling_error_response.rb +92 -0
- data/lib/shell_ev/models/cancel_fueling_request.rb +61 -0
- data/lib/shell_ev/models/collecting_company.rb +50 -0
- data/lib/shell_ev/models/fault_response.rb +50 -0
- data/lib/shell_ev/models/fault_response_fault.rb +60 -0
- data/lib/shell_ev/models/fault_response_fault_detail.rb +50 -0
- data/lib/shell_ev/models/finalise_fueling_request.rb +181 -0
- data/lib/shell_ev/models/finalise_fueling_request_payment.rb +71 -0
- data/lib/shell_ev/models/finalise_fueling_request_products_items.rb +70 -0
- data/lib/shell_ev/models/loyalty_details.rb +59 -0
- data/lib/shell_ev/models/mobile_payment_registration_request.rb +134 -0
- data/lib/shell_ev/models/mpp_acces_token_response.rb +81 -0
- data/lib/shell_ev/models/mpp_error.rb +94 -0
- data/lib/shell_ev/models/mpp_token_request_body.rb +73 -0
- data/lib/shell_ev/models/oauth_token_post_request_body.rb +73 -0
- data/lib/shell_ev/models/partner_token_request_body.rb +73 -0
- data/lib/shell_ev/models/payment_details_items.rb +78 -0
- data/lib/shell_ev/models/payment_enablement_response.rb +48 -0
- data/lib/shell_ev/models/payment_properties.rb +169 -0
- data/lib/shell_ev/models/prepare_fueling_request.rb +183 -0
- data/lib/shell_ev/models/prepare_fueling_request_device_details_items.rb +95 -0
- data/lib/shell_ev/models/prepare_fueling_response.rb +66 -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.rb +85 -0
- data/test/controllers/controller_test_base.rb +29 -0
- data/test/controllers/test_fueling_controller.rb +61 -0
- data/test/controllers/test_partner_notification_controller.rb +60 -0
- data/test/controllers/test_shell_api_platform_security_authentication_controller.rb +36 -0
- data/test/controllers/test_station_locator_controller.rb +44 -0
- data/test/http_response_catcher.rb +19 -0
- metadata +185 -0
@@ -0,0 +1,71 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# AccessTokenResponse Model.
|
8
|
+
class AccessTokenResponse < BaseModel
|
9
|
+
SKIP = Object.new
|
10
|
+
private_constant :SKIP
|
11
|
+
|
12
|
+
# It is the token used for the requests that required an authenticated user.
|
13
|
+
# This will be used for all the callback URLs.
|
14
|
+
# @return [String]
|
15
|
+
attr_accessor :access_token
|
16
|
+
|
17
|
+
# validity of the access token in seconds
|
18
|
+
# @return [String]
|
19
|
+
attr_accessor :expires_in
|
20
|
+
|
21
|
+
# Type of token provided
|
22
|
+
# @return [String]
|
23
|
+
attr_accessor :token_type
|
24
|
+
|
25
|
+
# A mapping from model property names to API property names.
|
26
|
+
def self.names
|
27
|
+
@_hash = {} if @_hash.nil?
|
28
|
+
@_hash['access_token'] = 'access_token'
|
29
|
+
@_hash['expires_in'] = 'expires_in'
|
30
|
+
@_hash['token_type'] = 'token_type'
|
31
|
+
@_hash
|
32
|
+
end
|
33
|
+
|
34
|
+
# An array for optional fields
|
35
|
+
def self.optionals
|
36
|
+
%w[
|
37
|
+
access_token
|
38
|
+
expires_in
|
39
|
+
token_type
|
40
|
+
]
|
41
|
+
end
|
42
|
+
|
43
|
+
# An array for nullable fields
|
44
|
+
def self.nullables
|
45
|
+
[]
|
46
|
+
end
|
47
|
+
|
48
|
+
def initialize(access_token = SKIP,
|
49
|
+
expires_in = SKIP,
|
50
|
+
token_type = 'Bearer')
|
51
|
+
@access_token = access_token unless access_token == SKIP
|
52
|
+
@expires_in = expires_in unless expires_in == SKIP
|
53
|
+
@token_type = token_type unless token_type == SKIP
|
54
|
+
end
|
55
|
+
|
56
|
+
# Creates an instance of the object from a hash.
|
57
|
+
def self.from_hash(hash)
|
58
|
+
return nil unless hash
|
59
|
+
|
60
|
+
# Extract variables from the hash.
|
61
|
+
access_token = hash.key?('access_token') ? hash['access_token'] : SKIP
|
62
|
+
expires_in = hash.key?('expires_in') ? hash['expires_in'] : SKIP
|
63
|
+
token_type = hash['token_type'] ||= 'Bearer'
|
64
|
+
|
65
|
+
# Create object from extracted values.
|
66
|
+
AccessTokenResponse.new(access_token,
|
67
|
+
expires_in,
|
68
|
+
token_type)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# #Amenities The table below lists all the different types of amenities: |
|
8
|
+
# Code | Description | ------- | --------
|
9
|
+
# | 1 | ATM
|
10
|
+
# | 2 | Water Closet or Toilet | 3 |
|
11
|
+
# Lottery | 4 | Select
|
12
|
+
# | 5 | Shop
|
13
|
+
# | 6 | Truck Friendly | 11 | Bottled
|
14
|
+
# Gas | 12 | PB Gas
|
15
|
+
# | 13 | Disabled Facilities | 14 |
|
16
|
+
# Credit card | 16 | Loyalty Card (AIr
|
17
|
+
# Miles for NL) | 17 | WiFi
|
18
|
+
# | 19 | Air & Water | 20 | Hoover /
|
19
|
+
# Vacuum | 21 | Pay at pump
|
20
|
+
# | 24 | Truck Only | 25 |
|
21
|
+
# Car Wash | 26 | Service Bay
|
22
|
+
# | 902 | External Card Reader |
|
23
|
+
# 903 | Bakery Shop | 907 | Grocery
|
24
|
+
# rewards / Partner Loyalty Accepted | 908 | Food Offerings | 914 |
|
25
|
+
# Shower | 915 | Vehicle identity system | 917 | Quick-lube | 918
|
26
|
+
# | High Speed Diesel | 919 | Type Of Parking | 920 | Mobile
|
27
|
+
# Payment | 921 | Disability Assistance | 922 | 24 Hour Fuel Service
|
28
|
+
# | 923 | Mobile Loyalty | 1001 | ATM-IN | 1002 | ATM-OUT | 1401
|
29
|
+
# | Credit card - Visa | 1402 | Credit card - Mastercard | 1403 |
|
30
|
+
# Credit card - American Express | 1404 | Credit card - Diners Club |
|
31
|
+
# 1405 | Credit card - General | 1505 | Shellcard | 1506 |
|
32
|
+
# Shellcard | 1507 | Partner card | 1601 | Club smart card | 1602
|
33
|
+
# | Gold Club smart card | 2001 | Water Closet or Toilet - standard |
|
34
|
+
# 2002 | Water Closet or Toilet - child | 2501 | Conveyor | 2502 |
|
35
|
+
# Jet | 2503 | Manual | 2504 | Rollover | 2505 | Rollover & Jet |
|
36
|
+
# 2506 | Conveyor & Jet | 5001 | Costa Express | 5002 | Deli2Go |
|
37
|
+
# 5003 | 2theloo | 5011 | Tim Hortons | 5012 | Starbucks | 5013
|
38
|
+
# | Waitrose | 5014 | Coca-Cola Freestyle | 9051 | Fleet card - DKV |
|
39
|
+
# 9052 | Fleet card - UTA | 9053 | Fleet card - Esso | 9054 | Fleet
|
40
|
+
# card - Eni | 9055 | Fleet card | 9061 | austrian highway sticker |
|
41
|
+
# 9062 | Czech highway sticker | 9063 | Slovak highway sticker | 9064
|
42
|
+
# | hungarian highway sticker | 9081 | Snack Food/Quick Food | 9082
|
43
|
+
# | Sandwich | 9083 | Burger | 9084 | Pizza | 9085 | Hot Food |
|
44
|
+
# 9086 | Cafeteria | 9087 | Restaurant | 9088 | Others | 9101 |
|
45
|
+
# Telepass Premium | 9102 | Sconti BancoPosta | 9103 | Fuel discount
|
46
|
+
# | 9111 | Full service /Attended Service | 9112 | Self service | 9114
|
47
|
+
# | Unmanned | 9161 | Ido ticket | 9163 | Toll smart card/Etoll |
|
48
|
+
# 9191 | Parking Lanes | 9192 | Guarded parking | 9193 | Truck
|
49
|
+
# Parking | 90735 | Navigator Fleet Loyalty Discount | 7077 | CRT Shell
|
50
|
+
# Card Accepted | 7022 | Fleet Shell Card Accepted | 100001 | Single
|
51
|
+
# Network Card Accepted | 100002 | National Network Card Accepted | 5015
|
52
|
+
# | Third party rental\:Pizza Hut Express | 5016 | Third party rental\:
|
53
|
+
# Budgens | 5017 | Third party rental\: Deli Cafe | 5018 | Third party
|
54
|
+
# rental\: Amazon Locker | 5019 | Third party rental\: Deli by Shell |
|
55
|
+
# 9204 | Car Wash MPay | 9205 | PayTM | 9241 | AdBlue Pump Truck |
|
56
|
+
# 9242 | AdBlue Pump Passenger vehicles | 9243 | AdBlue Packed Product
|
57
|
+
# | 999909 | Shop\: Spar Express | 999910 | Shop\: Migrolino Error Codes
|
58
|
+
# All request will return a 200 HTTP Response, but the Response will include
|
59
|
+
# details of an error if/when an error occurs
|
60
|
+
class AroundLocationArray < BaseModel
|
61
|
+
SKIP = Object.new
|
62
|
+
private_constant :SKIP
|
63
|
+
|
64
|
+
# An array of station objects
|
65
|
+
# @return [Array[AroundLocationArrayDataItems]]
|
66
|
+
attr_accessor :data
|
67
|
+
|
68
|
+
# A mapping from model property names to API property names.
|
69
|
+
def self.names
|
70
|
+
@_hash = {} if @_hash.nil?
|
71
|
+
@_hash['data'] = 'data'
|
72
|
+
@_hash
|
73
|
+
end
|
74
|
+
|
75
|
+
# An array for optional fields
|
76
|
+
def self.optionals
|
77
|
+
[]
|
78
|
+
end
|
79
|
+
|
80
|
+
# An array for nullable fields
|
81
|
+
def self.nullables
|
82
|
+
[]
|
83
|
+
end
|
84
|
+
|
85
|
+
def initialize(data = nil)
|
86
|
+
@data = data
|
87
|
+
end
|
88
|
+
|
89
|
+
# Creates an instance of the object from a hash.
|
90
|
+
def self.from_hash(hash)
|
91
|
+
return nil unless hash
|
92
|
+
|
93
|
+
# Extract variables from the hash.
|
94
|
+
# Parameter is an array, so we need to iterate through it
|
95
|
+
data = nil
|
96
|
+
unless hash['data'].nil?
|
97
|
+
data = []
|
98
|
+
hash['data'].each do |structure|
|
99
|
+
data << (AroundLocationArrayDataItems.from_hash(structure) if structure)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
data = nil unless hash.key?('data')
|
104
|
+
|
105
|
+
# Create object from extracted values.
|
106
|
+
AroundLocationArray.new(data)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
@@ -0,0 +1,242 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# AroundLocationArrayDataItems Model.
|
8
|
+
class AroundLocationArrayDataItems < BaseModel
|
9
|
+
SKIP = Object.new
|
10
|
+
private_constant :SKIP
|
11
|
+
|
12
|
+
# The station’s unique site identifier – this must be ignored
|
13
|
+
# @return [String]
|
14
|
+
attr_accessor :id
|
15
|
+
|
16
|
+
# All fuel stations are of at least one Type, indicating whether it is
|
17
|
+
# Shell-branded or not, and if the
|
18
|
+
# station can be used by trucks. Note that a station can have more than one
|
19
|
+
# Type (e.g. Shell retail
|
20
|
+
# sites (Type=0) can also be truck friendly (Type=2)).
|
21
|
+
# Type values are as follows:
|
22
|
+
# * 0 = Shell owned/branded stations that are not also Type=2 or Type=3
|
23
|
+
# * 1 = Partner stations accepting Shell Card
|
24
|
+
# * 2 = Shell owned/branded stations that are truck friendly but not Type=3
|
25
|
+
# * 3 = Shell owned/branded stations that are truck only
|
26
|
+
# @return [Integer]
|
27
|
+
attr_accessor :type
|
28
|
+
|
29
|
+
# The name of the site
|
30
|
+
# @return [String]
|
31
|
+
attr_accessor :name
|
32
|
+
|
33
|
+
# The side address as a concatenation of address information
|
34
|
+
# @return [String]
|
35
|
+
attr_accessor :addr
|
36
|
+
|
37
|
+
# The site’s latitude
|
38
|
+
# @return [Float]
|
39
|
+
attr_accessor :lat
|
40
|
+
|
41
|
+
# The site’s longitude
|
42
|
+
# @return [Float]
|
43
|
+
attr_accessor :lon
|
44
|
+
|
45
|
+
# An array of amenities available at the station (see above for complete
|
46
|
+
# list)
|
47
|
+
# @return [Array[Integer]]
|
48
|
+
attr_accessor :amen
|
49
|
+
|
50
|
+
# An array of fuels* available at the station.
|
51
|
+
# Global Product Group names:
|
52
|
+
# * 8 = CNG
|
53
|
+
# * 10 = Premium Gasoline
|
54
|
+
# * 11 = Premium Diesel
|
55
|
+
# * 12 = Fuelsave Midgrade Gasoline
|
56
|
+
# * 13 = Fuelsave Regular Diesel
|
57
|
+
# * 14 = Midgrade Gasoline
|
58
|
+
# * 15 = Low Octane gasoline
|
59
|
+
# * 16 = Regular Diesel
|
60
|
+
# * 17 = Autogas LPG
|
61
|
+
# * 18 = Auto/RV Propane
|
62
|
+
# * 20 = Hydrogen
|
63
|
+
# * 21 = Kerosene
|
64
|
+
# * 22 = Super Premium Gasoline
|
65
|
+
# * 23 = Unleaded Super
|
66
|
+
# * 24 = Truck Diesel
|
67
|
+
# * 25 = Super98
|
68
|
+
# * 26 = GTL
|
69
|
+
# * 27 = Fuelsave 98
|
70
|
+
# * 28 = LNG
|
71
|
+
# * 29 = DieselFit
|
72
|
+
# * 30 = Shell Recharge
|
73
|
+
#
|
74
|
+
# *An external mapping table may need to be maintained if it is required to
|
75
|
+
# display true fuel product names (as visible on the site)
|
76
|
+
# @return [Array[Integer]]
|
77
|
+
attr_accessor :fuel
|
78
|
+
|
79
|
+
# Object containing address details/elements
|
80
|
+
# @return [AroundLocationArrayDataItemsLoc]
|
81
|
+
attr_accessor :loc
|
82
|
+
|
83
|
+
# This is the 5-digit Shell Station ID. Leading ‘0’ should be dropped and
|
84
|
+
# only last four digits, should be used. E.G. for ‘00123’, only ‘0123’
|
85
|
+
# should be used and for ‘04567’ only ‘4567’ should be used.
|
86
|
+
# @return [String]
|
87
|
+
attr_accessor :mpp_station_id
|
88
|
+
|
89
|
+
# The Mobile Payment Platform recognises a user being located at a Shell
|
90
|
+
# Station if their GPS is within 300m of a Shell station. Some locations
|
91
|
+
# will return multiple Shell Stations within a 300 meter radius. This is an
|
92
|
+
# issue for Mobile Payments as it needs to accurately identify the station
|
93
|
+
# the Customer is located at to ensure the correct pump is released
|
94
|
+
# In Germany such locations have been identified and each Station has been
|
95
|
+
# assigned a unique letter (e.g. A, B, C). These letters are clearly visible
|
96
|
+
# at the stations. If a Mobile Payments user is located at such a location,
|
97
|
+
# they will need to identify the Station by identifying and specifying the
|
98
|
+
# Station’s corresponding letter as part of the refuelling journey.
|
99
|
+
# The double_site_id is used to store the Stations unique letter/ID value.
|
100
|
+
# It’s only populated if/when 1 or more stations are within 300m from this
|
101
|
+
# station.
|
102
|
+
# @return [String]
|
103
|
+
attr_accessor :double_site_id
|
104
|
+
|
105
|
+
# An Array of the station’s opening hours. This may have opening and closing
|
106
|
+
# times in hours, minutes and the day of the week.
|
107
|
+
# @return [Array[AroundLocationArrayDataItemsOpeningHoursItems]]
|
108
|
+
attr_accessor :opening_hours
|
109
|
+
|
110
|
+
# Station’s contact telephone number
|
111
|
+
# @return [String]
|
112
|
+
attr_accessor :telephone
|
113
|
+
|
114
|
+
# Station’s authorisation code
|
115
|
+
# @return [String]
|
116
|
+
attr_accessor :authorisation_code
|
117
|
+
|
118
|
+
# Station’s mobile payment preauthorisation value
|
119
|
+
# @return [Integer]
|
120
|
+
attr_accessor :mp_preauth
|
121
|
+
|
122
|
+
# A mapping from model property names to API property names.
|
123
|
+
def self.names
|
124
|
+
@_hash = {} if @_hash.nil?
|
125
|
+
@_hash['id'] = 'id'
|
126
|
+
@_hash['type'] = 'type'
|
127
|
+
@_hash['name'] = 'name'
|
128
|
+
@_hash['addr'] = 'addr'
|
129
|
+
@_hash['lat'] = 'lat'
|
130
|
+
@_hash['lon'] = 'lon'
|
131
|
+
@_hash['amen'] = 'amen'
|
132
|
+
@_hash['fuel'] = 'fuel'
|
133
|
+
@_hash['loc'] = 'loc'
|
134
|
+
@_hash['mpp_station_id'] = 'mpp_station_id'
|
135
|
+
@_hash['double_site_id'] = 'double_site_id'
|
136
|
+
@_hash['opening_hours'] = 'opening_hours'
|
137
|
+
@_hash['telephone'] = 'telephone'
|
138
|
+
@_hash['authorisation_code'] = 'authorisation_code'
|
139
|
+
@_hash['mp_preauth'] = 'mp_preauth'
|
140
|
+
@_hash
|
141
|
+
end
|
142
|
+
|
143
|
+
# An array for optional fields
|
144
|
+
def self.optionals
|
145
|
+
%w[
|
146
|
+
double_site_id
|
147
|
+
opening_hours
|
148
|
+
telephone
|
149
|
+
authorisation_code
|
150
|
+
mp_preauth
|
151
|
+
]
|
152
|
+
end
|
153
|
+
|
154
|
+
# An array for nullable fields
|
155
|
+
def self.nullables
|
156
|
+
[]
|
157
|
+
end
|
158
|
+
|
159
|
+
def initialize(id = nil,
|
160
|
+
type = nil,
|
161
|
+
name = nil,
|
162
|
+
addr = nil,
|
163
|
+
lat = nil,
|
164
|
+
lon = nil,
|
165
|
+
amen = nil,
|
166
|
+
fuel = nil,
|
167
|
+
loc = nil,
|
168
|
+
mpp_station_id = nil,
|
169
|
+
double_site_id = SKIP,
|
170
|
+
opening_hours = SKIP,
|
171
|
+
telephone = SKIP,
|
172
|
+
authorisation_code = SKIP,
|
173
|
+
mp_preauth = SKIP)
|
174
|
+
@id = id
|
175
|
+
@type = type
|
176
|
+
@name = name
|
177
|
+
@addr = addr
|
178
|
+
@lat = lat
|
179
|
+
@lon = lon
|
180
|
+
@amen = amen
|
181
|
+
@fuel = fuel
|
182
|
+
@loc = loc
|
183
|
+
@mpp_station_id = mpp_station_id
|
184
|
+
@double_site_id = double_site_id unless double_site_id == SKIP
|
185
|
+
@opening_hours = opening_hours unless opening_hours == SKIP
|
186
|
+
@telephone = telephone unless telephone == SKIP
|
187
|
+
@authorisation_code = authorisation_code unless authorisation_code == SKIP
|
188
|
+
@mp_preauth = mp_preauth unless mp_preauth == SKIP
|
189
|
+
end
|
190
|
+
|
191
|
+
# Creates an instance of the object from a hash.
|
192
|
+
def self.from_hash(hash)
|
193
|
+
return nil unless hash
|
194
|
+
|
195
|
+
# Extract variables from the hash.
|
196
|
+
id = hash.key?('id') ? hash['id'] : nil
|
197
|
+
type = hash.key?('type') ? hash['type'] : nil
|
198
|
+
name = hash.key?('name') ? hash['name'] : nil
|
199
|
+
addr = hash.key?('addr') ? hash['addr'] : nil
|
200
|
+
lat = hash.key?('lat') ? hash['lat'] : nil
|
201
|
+
lon = hash.key?('lon') ? hash['lon'] : nil
|
202
|
+
amen = hash.key?('amen') ? hash['amen'] : nil
|
203
|
+
fuel = hash.key?('fuel') ? hash['fuel'] : nil
|
204
|
+
loc = AroundLocationArrayDataItemsLoc.from_hash(hash['loc']) if hash['loc']
|
205
|
+
mpp_station_id =
|
206
|
+
hash.key?('mpp_station_id') ? hash['mpp_station_id'] : nil
|
207
|
+
double_site_id =
|
208
|
+
hash.key?('double_site_id') ? hash['double_site_id'] : SKIP
|
209
|
+
# Parameter is an array, so we need to iterate through it
|
210
|
+
opening_hours = nil
|
211
|
+
unless hash['opening_hours'].nil?
|
212
|
+
opening_hours = []
|
213
|
+
hash['opening_hours'].each do |structure|
|
214
|
+
opening_hours << (AroundLocationArrayDataItemsOpeningHoursItems.from_hash(structure) if structure)
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
opening_hours = SKIP unless hash.key?('opening_hours')
|
219
|
+
telephone = hash.key?('telephone') ? hash['telephone'] : SKIP
|
220
|
+
authorisation_code =
|
221
|
+
hash.key?('authorisation_code') ? hash['authorisation_code'] : SKIP
|
222
|
+
mp_preauth = hash.key?('mp_preauth') ? hash['mp_preauth'] : SKIP
|
223
|
+
|
224
|
+
# Create object from extracted values.
|
225
|
+
AroundLocationArrayDataItems.new(id,
|
226
|
+
type,
|
227
|
+
name,
|
228
|
+
addr,
|
229
|
+
lat,
|
230
|
+
lon,
|
231
|
+
amen,
|
232
|
+
fuel,
|
233
|
+
loc,
|
234
|
+
mpp_station_id,
|
235
|
+
double_site_id,
|
236
|
+
opening_hours,
|
237
|
+
telephone,
|
238
|
+
authorisation_code,
|
239
|
+
mp_preauth)
|
240
|
+
end
|
241
|
+
end
|
242
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# Object containing address details/elements
|
8
|
+
class AroundLocationArrayDataItemsLoc < BaseModel
|
9
|
+
SKIP = Object.new
|
10
|
+
private_constant :SKIP
|
11
|
+
|
12
|
+
# The station’s full street address, including building number
|
13
|
+
# @return [String]
|
14
|
+
attr_accessor :street
|
15
|
+
|
16
|
+
# The station’s postcode
|
17
|
+
# @return [String]
|
18
|
+
attr_accessor :pc
|
19
|
+
|
20
|
+
# The city the station is located within
|
21
|
+
# @return [String]
|
22
|
+
attr_accessor :city
|
23
|
+
|
24
|
+
# The region the station is located within
|
25
|
+
# @return [String]
|
26
|
+
attr_accessor :region
|
27
|
+
|
28
|
+
# The name of the country (in English) the station is located within
|
29
|
+
# @return [String]
|
30
|
+
attr_accessor :country
|
31
|
+
|
32
|
+
# The two-letter ISO 3166 country code of the country the station is located
|
33
|
+
# within
|
34
|
+
# @return [String]
|
35
|
+
attr_accessor :ccode
|
36
|
+
|
37
|
+
# A mapping from model property names to API property names.
|
38
|
+
def self.names
|
39
|
+
@_hash = {} if @_hash.nil?
|
40
|
+
@_hash['street'] = 'street'
|
41
|
+
@_hash['pc'] = 'pc'
|
42
|
+
@_hash['city'] = 'city'
|
43
|
+
@_hash['region'] = 'region'
|
44
|
+
@_hash['country'] = 'country'
|
45
|
+
@_hash['ccode'] = 'ccode'
|
46
|
+
@_hash
|
47
|
+
end
|
48
|
+
|
49
|
+
# An array for optional fields
|
50
|
+
def self.optionals
|
51
|
+
%w[
|
52
|
+
street
|
53
|
+
pc
|
54
|
+
city
|
55
|
+
region
|
56
|
+
]
|
57
|
+
end
|
58
|
+
|
59
|
+
# An array for nullable fields
|
60
|
+
def self.nullables
|
61
|
+
[]
|
62
|
+
end
|
63
|
+
|
64
|
+
def initialize(country = nil,
|
65
|
+
ccode = nil,
|
66
|
+
street = SKIP,
|
67
|
+
pc = SKIP,
|
68
|
+
city = SKIP,
|
69
|
+
region = SKIP)
|
70
|
+
@street = street unless street == SKIP
|
71
|
+
@pc = pc unless pc == SKIP
|
72
|
+
@city = city unless city == SKIP
|
73
|
+
@region = region unless region == SKIP
|
74
|
+
@country = country
|
75
|
+
@ccode = ccode
|
76
|
+
end
|
77
|
+
|
78
|
+
# Creates an instance of the object from a hash.
|
79
|
+
def self.from_hash(hash)
|
80
|
+
return nil unless hash
|
81
|
+
|
82
|
+
# Extract variables from the hash.
|
83
|
+
country = hash.key?('country') ? hash['country'] : nil
|
84
|
+
ccode = hash.key?('ccode') ? hash['ccode'] : nil
|
85
|
+
street = hash.key?('street') ? hash['street'] : SKIP
|
86
|
+
pc = hash.key?('pc') ? hash['pc'] : SKIP
|
87
|
+
city = hash.key?('city') ? hash['city'] : SKIP
|
88
|
+
region = hash.key?('region') ? hash['region'] : SKIP
|
89
|
+
|
90
|
+
# Create object from extracted values.
|
91
|
+
AroundLocationArrayDataItemsLoc.new(country,
|
92
|
+
ccode,
|
93
|
+
street,
|
94
|
+
pc,
|
95
|
+
city,
|
96
|
+
region)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,148 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# AroundLocationArrayDataItemsOpeningHoursItems Model.
|
8
|
+
class AroundLocationArrayDataItemsOpeningHoursItems < BaseModel
|
9
|
+
SKIP = Object.new
|
10
|
+
private_constant :SKIP
|
11
|
+
|
12
|
+
# TODO: Write general description for this method
|
13
|
+
# @return [String]
|
14
|
+
attr_accessor :closing_from_hours
|
15
|
+
|
16
|
+
# TODO: Write general description for this method
|
17
|
+
# @return [String]
|
18
|
+
attr_accessor :closing_from_minutes
|
19
|
+
|
20
|
+
# TODO: Write general description for this method
|
21
|
+
# @return [String]
|
22
|
+
attr_accessor :closing_to_hours
|
23
|
+
|
24
|
+
# TODO: Write general description for this method
|
25
|
+
# @return [String]
|
26
|
+
attr_accessor :closing_to_minutes
|
27
|
+
|
28
|
+
# TODO: Write general description for this method
|
29
|
+
# @return [String]
|
30
|
+
attr_accessor :from_day
|
31
|
+
|
32
|
+
# TODO: Write general description for this method
|
33
|
+
# @return [String]
|
34
|
+
attr_accessor :opening_from_hours
|
35
|
+
|
36
|
+
# TODO: Write general description for this method
|
37
|
+
# @return [String]
|
38
|
+
attr_accessor :opening_from_minutes
|
39
|
+
|
40
|
+
# TODO: Write general description for this method
|
41
|
+
# @return [String]
|
42
|
+
attr_accessor :opening_to_hours
|
43
|
+
|
44
|
+
# TODO: Write general description for this method
|
45
|
+
# @return [String]
|
46
|
+
attr_accessor :opening_to_minutes
|
47
|
+
|
48
|
+
# TODO: Write general description for this method
|
49
|
+
# @return [String]
|
50
|
+
attr_accessor :to_day
|
51
|
+
|
52
|
+
# A mapping from model property names to API property names.
|
53
|
+
def self.names
|
54
|
+
@_hash = {} if @_hash.nil?
|
55
|
+
@_hash['closing_from_hours'] = 'Closing_From_Hours'
|
56
|
+
@_hash['closing_from_minutes'] = 'Closing_From_Minutes'
|
57
|
+
@_hash['closing_to_hours'] = 'Closing_To_Hours'
|
58
|
+
@_hash['closing_to_minutes'] = 'Closing_To_Minutes'
|
59
|
+
@_hash['from_day'] = 'From_Day'
|
60
|
+
@_hash['opening_from_hours'] = 'Opening_From_Hours'
|
61
|
+
@_hash['opening_from_minutes'] = 'Opening_From_Minutes'
|
62
|
+
@_hash['opening_to_hours'] = 'Opening_To_Hours'
|
63
|
+
@_hash['opening_to_minutes'] = 'Opening_To_Minutes'
|
64
|
+
@_hash['to_day'] = 'To_Day'
|
65
|
+
@_hash
|
66
|
+
end
|
67
|
+
|
68
|
+
# An array for optional fields
|
69
|
+
def self.optionals
|
70
|
+
%w[
|
71
|
+
closing_from_hours
|
72
|
+
closing_from_minutes
|
73
|
+
closing_to_hours
|
74
|
+
closing_to_minutes
|
75
|
+
from_day
|
76
|
+
opening_from_hours
|
77
|
+
opening_from_minutes
|
78
|
+
opening_to_hours
|
79
|
+
opening_to_minutes
|
80
|
+
to_day
|
81
|
+
]
|
82
|
+
end
|
83
|
+
|
84
|
+
# An array for nullable fields
|
85
|
+
def self.nullables
|
86
|
+
[]
|
87
|
+
end
|
88
|
+
|
89
|
+
def initialize(closing_from_hours = SKIP,
|
90
|
+
closing_from_minutes = SKIP,
|
91
|
+
closing_to_hours = SKIP,
|
92
|
+
closing_to_minutes = SKIP,
|
93
|
+
from_day = SKIP,
|
94
|
+
opening_from_hours = SKIP,
|
95
|
+
opening_from_minutes = SKIP,
|
96
|
+
opening_to_hours = SKIP,
|
97
|
+
opening_to_minutes = SKIP,
|
98
|
+
to_day = SKIP)
|
99
|
+
@closing_from_hours = closing_from_hours unless closing_from_hours == SKIP
|
100
|
+
@closing_from_minutes = closing_from_minutes unless closing_from_minutes == SKIP
|
101
|
+
@closing_to_hours = closing_to_hours unless closing_to_hours == SKIP
|
102
|
+
@closing_to_minutes = closing_to_minutes unless closing_to_minutes == SKIP
|
103
|
+
@from_day = from_day unless from_day == SKIP
|
104
|
+
@opening_from_hours = opening_from_hours unless opening_from_hours == SKIP
|
105
|
+
@opening_from_minutes = opening_from_minutes unless opening_from_minutes == SKIP
|
106
|
+
@opening_to_hours = opening_to_hours unless opening_to_hours == SKIP
|
107
|
+
@opening_to_minutes = opening_to_minutes unless opening_to_minutes == SKIP
|
108
|
+
@to_day = to_day unless to_day == SKIP
|
109
|
+
end
|
110
|
+
|
111
|
+
# Creates an instance of the object from a hash.
|
112
|
+
def self.from_hash(hash)
|
113
|
+
return nil unless hash
|
114
|
+
|
115
|
+
# Extract variables from the hash.
|
116
|
+
closing_from_hours =
|
117
|
+
hash.key?('Closing_From_Hours') ? hash['Closing_From_Hours'] : SKIP
|
118
|
+
closing_from_minutes =
|
119
|
+
hash.key?('Closing_From_Minutes') ? hash['Closing_From_Minutes'] : SKIP
|
120
|
+
closing_to_hours =
|
121
|
+
hash.key?('Closing_To_Hours') ? hash['Closing_To_Hours'] : SKIP
|
122
|
+
closing_to_minutes =
|
123
|
+
hash.key?('Closing_To_Minutes') ? hash['Closing_To_Minutes'] : SKIP
|
124
|
+
from_day = hash.key?('From_Day') ? hash['From_Day'] : SKIP
|
125
|
+
opening_from_hours =
|
126
|
+
hash.key?('Opening_From_Hours') ? hash['Opening_From_Hours'] : SKIP
|
127
|
+
opening_from_minutes =
|
128
|
+
hash.key?('Opening_From_Minutes') ? hash['Opening_From_Minutes'] : SKIP
|
129
|
+
opening_to_hours =
|
130
|
+
hash.key?('Opening_To_Hours') ? hash['Opening_To_Hours'] : SKIP
|
131
|
+
opening_to_minutes =
|
132
|
+
hash.key?('Opening_To_Minutes') ? hash['Opening_To_Minutes'] : SKIP
|
133
|
+
to_day = hash.key?('To_Day') ? hash['To_Day'] : SKIP
|
134
|
+
|
135
|
+
# Create object from extracted values.
|
136
|
+
AroundLocationArrayDataItemsOpeningHoursItems.new(closing_from_hours,
|
137
|
+
closing_from_minutes,
|
138
|
+
closing_to_hours,
|
139
|
+
closing_to_minutes,
|
140
|
+
from_day,
|
141
|
+
opening_from_hours,
|
142
|
+
opening_from_minutes,
|
143
|
+
opening_to_hours,
|
144
|
+
opening_to_minutes,
|
145
|
+
to_day)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|