Class: CDEKApiClient::API::Courier

Inherits:
Object
  • Object
show all
Defined in:
lib/cdek_api_client/api/courier.rb

Overview

Handles courier-related API requests (agreements and intakes).

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Courier

Initializes the Courier object.

Parameters:



10
11
12
# File 'lib/cdek_api_client/api/courier.rb', line 10

def initialize(client)
  @client = client
end

Instance Method Details

#create_agreement(agreement_data) ⇒ Hash

Creates a delivery agreement.

Parameters:

Returns:

  • (Hash)

    the response from the API.



18
19
20
21
# File 'lib/cdek_api_client/api/courier.rb', line 18

def create_agreement(agreement_data)
  response = @client.request('post', 'delivery', body: agreement_data)
  handle_response(response)
end

#create_intake(intake_data) ⇒ Hash

Creates a courier intake request.

Parameters:

Returns:

  • (Hash)

    the response from the API.



37
38
39
40
# File 'lib/cdek_api_client/api/courier.rb', line 37

def create_intake(intake_data)
  response = @client.request('post', 'intakes', body: intake_data)
  handle_response(response)
end

#create_intake_available_days(request_data) ⇒ Hash

Gets available days for courier intake.

Parameters:

Returns:

  • (Hash)

    the available days information.



66
67
68
69
# File 'lib/cdek_api_client/api/courier.rb', line 66

def create_intake_available_days(request_data)
  response = @client.request('post', 'intakes/availableDays', body: request_data)
  handle_response(response)
end

#delete_intake(intake_uuid) ⇒ Hash

Deletes an intake request by UUID.

Parameters:

  • intake_uuid (String)

    the UUID of the intake to delete.

Returns:

  • (Hash)

    the response from the API.



56
57
58
59
60
# File 'lib/cdek_api_client/api/courier.rb', line 56

def delete_intake(intake_uuid)
  validate_uuid(intake_uuid)
  response = @client.request('delete', "intakes/#{intake_uuid}")
  handle_response(response)
end

#get_agreement(agreement_uuid) ⇒ Hash

Gets agreement information by UUID.

Parameters:

  • agreement_uuid (String)

    the UUID of the agreement.

Returns:

  • (Hash)

    the agreement information.



27
28
29
30
31
# File 'lib/cdek_api_client/api/courier.rb', line 27

def get_agreement(agreement_uuid)
  validate_uuid(agreement_uuid)
  response = @client.request('get', "delivery/#{agreement_uuid}")
  handle_response(response)
end

#get_delivery_intervals(cdek_number: nil, order_uuid: nil) ⇒ Hash

Gets available delivery intervals for an order.

Parameters:

  • cdek_number (String, nil) (defaults to: nil)

    the CDEK order number.

  • order_uuid (String, nil) (defaults to: nil)

    the order UUID.

Returns:

  • (Hash)

    the available delivery intervals.



76
77
78
79
80
81
82
83
# File 'lib/cdek_api_client/api/courier.rb', line 76

def get_delivery_intervals(cdek_number: nil, order_uuid: nil)
  query = {}
  query[:cdek_number] = cdek_number if cdek_number
  query[:order_uuid] = order_uuid if order_uuid

  response = @client.request('get', 'delivery/intervals', query: query)
  handle_response(response)
end

#get_intake(intake_uuid) ⇒ Hash

Gets intake information by UUID.

Parameters:

  • intake_uuid (String)

    the UUID of the intake.

Returns:

  • (Hash)

    the intake information.



46
47
48
49
50
# File 'lib/cdek_api_client/api/courier.rb', line 46

def get_intake(intake_uuid)
  validate_uuid(intake_uuid)
  response = @client.request('get', "intakes/#{intake_uuid}")
  handle_response(response)
end