Class: TqlOtrFactoringDataExchange::AssignmentsApi

Inherits:
BaseApi
  • Object
show all
Defined in:
lib/tql_otr_factoring_data_exchange/apis/assignments_api.rb

Overview

AssignmentsApi

Constant Summary

Constants inherited from BaseApi

BaseApi::GLOBAL_ERRORS

Instance Attribute Summary

Attributes inherited from BaseApi

#config, #http_call_back

Instance Method Summary collapse

Methods inherited from BaseApi

#initialize, #new_parameter, #new_request_builder, #new_response_handler, user_agent, user_agent_parameters

Constructor Details

This class inherits a constructor from TqlOtrFactoringDataExchange::BaseApi

Instance Method Details

#upsert_assignment(body) ⇒ ApiResponse

Notify TQL that a factoring company has been assigned to — or unassigned from — a carrier. The request is idempotent; sending the same carrier + status combination again is a no-op. The ‘effectiveDate` field indicates the date the assignment or un-assignment took effect (i.e., the “as of” date). **Load event webhooks:** Assigning a carrier also serves as a subscription to load event webhooks for that carrier. Once a carrier is assigned, TQL will begin pushing webhook notifications (e.g., Load Created, Load Dispatched, Load Delivered) for loads where that carrier is the assigned carrier. Unassigning the carrier stops these notifications. The webhook endpoint URL is configured during partner onboarding. payload including carrier identity, assignment status, and effective date.

Parameters:

Returns:

  • (ApiResponse)

    Complete http response with raw body and status code.



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/tql_otr_factoring_data_exchange/apis/assignments_api.rb', line 24

def upsert_assignment(body)
  @api_call
    .request(new_request_builder(HttpMethodEnum::PUT,
                                 '/api/assignments',
                                 Server::DEFAULT)
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body)
                            .is_required(true))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(Single.new('bearerAuth')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:custom_type_deserializer))
                .deserialize_into(AssignmentResponse.method(:from_hash))
                .is_api_response(true)
                .local_error('400',
                             "Validation error — missing required fields or invalid data.\n",
                             ProblemDetailsErrorException))
    .execute
end