class CzechPostB2bClient::RequestBuilders::GetParcelStateBuilder

Attributes

parcel_codes[R]

Public Class Methods

new(parcel_codes:, request_id: 1) click to toggle source
# File lib/czech_post_b2b_client/request_builders/get_parcel_state_builder.rb, line 8
def initialize(parcel_codes:, request_id: 1)
  @parcel_codes = parcel_codes
  @request_id = request_id
end

Private Instance Methods

get_parcel_state() click to toggle source
# File lib/czech_post_b2b_client/request_builders/get_parcel_state_builder.rb, line 33
def get_parcel_state # rubocop:disable Naming/AccessorMethodName
  new_element('ns2:getParcelState').tap do |parcel_state|
    parcel_codes.each do |parcel_code|
      add_element_to(parcel_state, 'ns2:idParcel', value: parcel_code.to_s)
    end

    add_element_to(parcel_state, 'ns2:language', value: configuration.language.to_s)
  end
end
service_data_struct() click to toggle source
# File lib/czech_post_b2b_client/request_builders/get_parcel_state_builder.rb, line 27
def service_data_struct
  new_element('serviceData').tap do |srv_data|
    add_element_to(srv_data, get_parcel_state)
  end
end
validate_data() click to toggle source
# File lib/czech_post_b2b_client/request_builders/get_parcel_state_builder.rb, line 15
def validate_data
  if parcel_codes.empty?
    errors.add(:parcel_codes, 'Minimum of 1 parcel code is required!')
    fail!
  end

  return if parcel_codes.size <= 10

  errors.add(:parcel_codes, 'Maximum of 10 parcel codes are allowed!')
  fail!
end