Sha256: 7ddebc4a22e7eb53a9e1b15040ed26f82dcef575fe5c31e5afc26e74ae659492

Contents?: true

Size: 1.04 KB

Versions: 2

Compression:

Stored size: 1.04 KB

Contents

require 'perfect_audit/api/bank_account'
require 'perfect_audit/api/document'

module PerfectAudit
  class Book
    extend Dry::Initializer

    option :pk, as: :id
    option :created, as: :created_at
    option :name
    option :is_public, as: :public
    option :owner_email, optional: true
    option :status_tags, optional: true
    option :bank_accounts, optional: true, as: :_bank_accounts
    option :docs, optional: true, as: :_documents

    alias_method :public?, :public

    def bank_accounts
      _bank_accounts.map do |id, params|
        PerfectAudit::BankAccount.new(params.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo})
      end
    end

    def documents
      _documents.map do |item|
        PerfectAudit::Document.new(item.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo})
      end
    end

    def verification_complete?
      documents.all?(&:verification_complete?)
    end

    def verification_failed?
      documents.any?(&:failed?)
    end

    def verification_rejected?
      documents.any?(&:rejected?)
    end
  end
end



Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
perfect_audit-0.2.3 lib/perfect_audit/api/book.rb
perfect_audit-0.2.2 lib/perfect_audit/api/book.rb