Class: TqlOtrFactoringDataExchange::LoadSearchRequest

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/tql_otr_factoring_data_exchange/models/load_search_request.rb

Overview

Search filters and pagination for querying TQL loads. All filter fields are optional.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseModel

#check_for_conflict, #process_additional_properties, #process_array, #process_basic_value, #process_hash, #to_hash, #to_json

Constructor Details

#initialize(page:, page_size:, load_numbers: SKIP, pro_numbers: SKIP, bol_numbers: SKIP, statuses: SKIP, carrier_dot_numbers: SKIP, carrier_mc_numbers: SKIP, ship_date_after: SKIP, ship_date_before: SKIP, delivery_date_after: SKIP, delivery_date_before: SKIP, additional_properties: nil) ⇒ LoadSearchRequest

Returns a new instance of LoadSearchRequest.



111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 111

def initialize(page:, page_size:, load_numbers: SKIP, pro_numbers: SKIP,
               bol_numbers: SKIP, statuses: SKIP, carrier_dot_numbers: SKIP,
               carrier_mc_numbers: SKIP, ship_date_after: SKIP,
               ship_date_before: SKIP, delivery_date_after: SKIP,
               delivery_date_before: SKIP, additional_properties: nil)
  # Add additional model properties to the instance
  additional_properties = {} if additional_properties.nil?

  @page = page
  @page_size = page_size
  @load_numbers = load_numbers unless load_numbers == SKIP
  @pro_numbers = pro_numbers unless pro_numbers == SKIP
  @bol_numbers = bol_numbers unless bol_numbers == SKIP
  @statuses = statuses unless statuses == SKIP
  @carrier_dot_numbers = carrier_dot_numbers unless carrier_dot_numbers == SKIP
  @carrier_mc_numbers = carrier_mc_numbers unless carrier_mc_numbers == SKIP
  @ship_date_after = ship_date_after unless ship_date_after == SKIP
  @ship_date_before = ship_date_before unless ship_date_before == SKIP
  @delivery_date_after = delivery_date_after unless delivery_date_after == SKIP
  @delivery_date_before = delivery_date_before unless delivery_date_before == SKIP
  @additional_properties = additional_properties
end

Instance Attribute Details

#bol_numbersArray[String]

Filter by one or more Bill of Lading numbers (exact match).

Returns:

  • (Array[String])


31
32
33
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 31

def bol_numbers
  @bol_numbers
end

#carrier_dot_numbersArray[String]

Filter by one or more USDOT numbers (exact match).

Returns:

  • (Array[String])


39
40
41
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 39

def carrier_dot_numbers
  @carrier_dot_numbers
end

#carrier_mc_numbersArray[String]

Filter by one or more MC numbers (exact match).

Returns:

  • (Array[String])


43
44
45
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 43

def carrier_mc_numbers
  @carrier_mc_numbers
end

#delivery_date_afterDate

Only return loads with a delivery date on or after this date.

Returns:

  • (Date)


55
56
57
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 55

def delivery_date_after
  @delivery_date_after
end

#delivery_date_beforeDate

Only return loads with a delivery date before this date.

Returns:

  • (Date)


59
60
61
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 59

def delivery_date_before
  @delivery_date_before
end

#load_numbersArray[String]

Filter by one or more TQL load numbers (exact match).

Returns:

  • (Array[String])


23
24
25
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 23

def load_numbers
  @load_numbers
end

#pageInteger

1-based page number.

Returns:

  • (Integer)


15
16
17
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 15

def page
  @page
end

#page_sizeInteger

Number of results per page (max 100).

Returns:

  • (Integer)


19
20
21
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 19

def page_size
  @page_size
end

#pro_numbersArray[String]

Filter by one or more carrier PRO numbers (exact match).

Returns:

  • (Array[String])


27
28
29
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 27

def pro_numbers
  @pro_numbers
end

#ship_date_afterDate

Only return loads with a ship date on or after this date.

Returns:

  • (Date)


47
48
49
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 47

def ship_date_after
  @ship_date_after
end

#ship_date_beforeDate

Only return loads with a ship date before this date.

Returns:

  • (Date)


51
52
53
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 51

def ship_date_before
  @ship_date_before
end

#statusesArray[LoadStatus]

Filter by one or more load statuses (OR within the array).

Returns:



35
36
37
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 35

def statuses
  @statuses
end

Class Method Details

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.



135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 135

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.
  page = hash.key?('page') ? hash['page'] : nil
  page_size = hash.key?('pageSize') ? hash['pageSize'] : nil
  load_numbers = hash.key?('loadNumbers') ? hash['loadNumbers'] : SKIP
  pro_numbers = hash.key?('proNumbers') ? hash['proNumbers'] : SKIP
  bol_numbers = hash.key?('bolNumbers') ? hash['bolNumbers'] : SKIP
  statuses = hash.key?('statuses') ? hash['statuses'] : SKIP
  carrier_dot_numbers =
    hash.key?('carrierDotNumbers') ? hash['carrierDotNumbers'] : SKIP
  carrier_mc_numbers =
    hash.key?('carrierMcNumbers') ? hash['carrierMcNumbers'] : SKIP
  ship_date_after =
    hash.key?('shipDateAfter') ? hash['shipDateAfter'] : SKIP
  ship_date_before =
    hash.key?('shipDateBefore') ? hash['shipDateBefore'] : SKIP
  delivery_date_after =
    hash.key?('deliveryDateAfter') ? hash['deliveryDateAfter'] : SKIP
  delivery_date_before =
    hash.key?('deliveryDateBefore') ? hash['deliveryDateBefore'] : SKIP

  # Create a new hash for additional properties, removing known properties.
  new_hash = hash.reject { |k, _| names.value?(k) }

  additional_properties = APIHelper.get_additional_properties(
    new_hash, proc { |value| value }
  )

  # Create object from extracted values.
  LoadSearchRequest.new(page: page,
                        page_size: page_size,
                        load_numbers: load_numbers,
                        pro_numbers: pro_numbers,
                        bol_numbers: bol_numbers,
                        statuses: statuses,
                        carrier_dot_numbers: carrier_dot_numbers,
                        carrier_mc_numbers: carrier_mc_numbers,
                        ship_date_after: ship_date_after,
                        ship_date_before: ship_date_before,
                        delivery_date_after: delivery_date_after,
                        delivery_date_before: delivery_date_before,
                        additional_properties: additional_properties)
end

.namesObject

A mapping from model property names to API property names.



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 62

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['page'] = 'page'
  @_hash['page_size'] = 'pageSize'
  @_hash['load_numbers'] = 'loadNumbers'
  @_hash['pro_numbers'] = 'proNumbers'
  @_hash['bol_numbers'] = 'bolNumbers'
  @_hash['statuses'] = 'statuses'
  @_hash['carrier_dot_numbers'] = 'carrierDotNumbers'
  @_hash['carrier_mc_numbers'] = 'carrierMcNumbers'
  @_hash['ship_date_after'] = 'shipDateAfter'
  @_hash['ship_date_before'] = 'shipDateBefore'
  @_hash['delivery_date_after'] = 'deliveryDateAfter'
  @_hash['delivery_date_before'] = 'deliveryDateBefore'
  @_hash
end

.nullablesObject

An array for nullable fields



96
97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 96

def self.nullables
  %w[
    load_numbers
    pro_numbers
    bol_numbers
    statuses
    carrier_dot_numbers
    carrier_mc_numbers
    ship_date_after
    ship_date_before
    delivery_date_after
    delivery_date_before
  ]
end

.optionalsObject

An array for optional fields



80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 80

def self.optionals
  %w[
    load_numbers
    pro_numbers
    bol_numbers
    statuses
    carrier_dot_numbers
    carrier_mc_numbers
    ship_date_after
    ship_date_before
    delivery_date_after
    delivery_date_before
  ]
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



193
194
195
196
197
198
199
200
201
202
203
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 193

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} page: #{@page.inspect}, page_size: #{@page_size.inspect}, load_numbers:"\
  " #{@load_numbers.inspect}, pro_numbers: #{@pro_numbers.inspect}, bol_numbers:"\
  " #{@bol_numbers.inspect}, statuses: #{@statuses.inspect}, carrier_dot_numbers:"\
  " #{@carrier_dot_numbers.inspect}, carrier_mc_numbers: #{@carrier_mc_numbers.inspect},"\
  " ship_date_after: #{@ship_date_after.inspect}, ship_date_before:"\
  " #{@ship_date_before.inspect}, delivery_date_after: #{@delivery_date_after.inspect},"\
  " delivery_date_before: #{@delivery_date_before.inspect}, additional_properties:"\
  " #{@additional_properties}>"
end

#to_sObject

Provides a human-readable string representation of the object.



182
183
184
185
186
187
188
189
190
# File 'lib/tql_otr_factoring_data_exchange/models/load_search_request.rb', line 182

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} page: #{@page}, page_size: #{@page_size}, load_numbers: #{@load_numbers},"\
  " pro_numbers: #{@pro_numbers}, bol_numbers: #{@bol_numbers}, statuses: #{@statuses},"\
  " carrier_dot_numbers: #{@carrier_dot_numbers}, carrier_mc_numbers: #{@carrier_mc_numbers},"\
  " ship_date_after: #{@ship_date_after}, ship_date_before: #{@ship_date_before},"\
  " delivery_date_after: #{@delivery_date_after}, delivery_date_before:"\
  " #{@delivery_date_before}, additional_properties: #{@additional_properties}>"
end