Sha256: a0cdb506fefdaeafa985d080a26a04ff1c493e8b957d5e0a6116162bc871224b
Contents?: true
Size: 1.49 KB
Versions: 7
Compression:
Stored size: 1.49 KB
Contents
require 'credova/api' module Credova class FFL < Base include Credova::API REQUIRED_CREATE_ATTRS = %i( license_number expiration address_one city state zip ) ENDPOINTS = { create: "federallicense".freeze, upload_document: "federallicense/%s/uploadfile".freeze, } def initialize(client) @client = client end def create(options = {}) requires!(options, REQUIRED_CREATE_ATTRS) endpoint = ENDPOINTS[:create] data = format_data_for_create(options) headers = [ *auth_header(@client.access_token), *content_type_header('application/json'), ].to_h post_request(endpoint, data, headers) end def upload_document(ffl_public_id, ffl_document_url) endpoint = ENDPOINTS[:upload_document] % ffl_public_id data = { form_data: ['file=@', ffl_document_url, '; type=application/', extract_file_extension(ffl_document_url)].join } headers = [ *auth_header(@client.access_token), *content_type_header('multipart/form-data'), ].to_h post_request(endpoint, data, headers) end private def format_data_for_create(data) { licenseNumber: data[:license_number], expiration: data[:expiration].strftime('%Y/%m/%d'), address: data[:address_one], address2: data[:address_two], city: data[:city], state: data[:state], zip: data[:zip], } end end end
Version data entries
7 entries across 7 versions & 1 rubygems