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 | 
            +
             |