class SealineInsurance::Operations::Calculate

Public Class Methods

new(config:, product_type:, products:, ticket_price:, options: []) click to toggle source
Calls superclass method SealineInsurance::Operations::Base::new
# File lib/sealine_insurance/operations/calculate.rb, line 6
def initialize(config:, product_type:, products:, ticket_price:, options: [])
  super(config: config)
  @product_type = product_type
  @products = products
  @ticket_price = ticket_price
  @options = options
end

Public Instance Methods

call() click to toggle source
# File lib/sealine_insurance/operations/calculate.rb, line 14
def call
  raw_response = request.post('/calculate-product',
    product_type: @product_type,
    products: @products,
    options: @options,
    data: {
      ticket_price: @ticket_price.to_i,
    },
  )
  @response = Responses::Calculate.new(raw_response)
  @request_id = @response.request_id
end
fetch_status!() click to toggle source
# File lib/sealine_insurance/operations/calculate.rb, line 27
def fetch_status!
  return unless @request_id

  raw_response = request.get("/calculate-product/#{@request_id}")
  @response = Responses::Calculate.new(raw_response)
end

Private Instance Methods

finished_status_list() click to toggle source
# File lib/sealine_insurance/operations/calculate.rb, line 36
def finished_status_list
  @finished_status_list ||= [
    'DONE',             # Выполнено
    'DONE_WITH_ERRORS', # Выполнено с ошибками
    'ERROR',            # Ошибка
  ]
end
success_status_list() click to toggle source
# File lib/sealine_insurance/operations/calculate.rb, line 44
def success_status_list
  @success_status_list ||= ['DONE']
end