Sha256: 01a4f631362c0422c8e7c582c87c926f73aae049c1e12e3edee69c81be614210

Contents?: true

Size: 1.82 KB

Versions: 4

Compression:

Stored size: 1.82 KB

Contents

# frozen_string_literal: true

require "base64"

module Veryfi
  module Api
    class Document
      CATEGORIES = [
        "Advertising & Marketing",
        "Automotive",
        "Bank Charges & Fees",
        "Legal & Professional Services",
        "Insurance",
        "Meals & Entertainment",
        "Office Supplies & Software",
        "Taxes & Licenses",
        "Travel",
        "Rent & Lease",
        "Repairs & Maintenance",
        "Payroll",
        "Utilities",
        "Job Supplies",
        "Grocery"
      ].freeze

      attr_reader :request

      def initialize(request)
        @request = request
      end

      def all(params = {})
        request.get("/partner/documents/", params)
      end

      def process(raw_params)
        params = setup_create_params(raw_params)

        file_content = File.read(params[:file_path])
        file_data = Base64.encode64(file_content).gsub("\n", "")
        file_name = params[:file_name] || File.basename(params[:file_path], ".*")

        payload = params.reject { |k| k == :file_path }.merge(
          file_name: file_name,
          file_data: file_data
        )

        request.post("/partner/documents/", payload)
      end

      def process_url(raw_params)
        params = setup_create_params(raw_params)

        request.post("/partner/documents/", params)
      end

      def get(id, params = {})
        request.get("/partner/documents/#{id}", params)
      end

      def update(id, params)
        request.put("/partner/documents/#{id}", params)
      end

      def delete(id)
        request.delete("/partner/documents/#{id}")
      end

      private

      def setup_create_params(raw_params)
        params = raw_params.transform_keys(&:to_sym)

        params[:categories] = CATEGORIES if params[:categories].to_a.empty?

        params
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
veryfi-2.0.0 lib/veryfi/api/document.rb
veryfi-1.0.4 lib/veryfi/api/document.rb
veryfi-1.0.1 lib/veryfi/api/document.rb
veryfi-1.0.0 lib/veryfi/api/document.rb