Class: Jbr::Invoice

Inherits:
Resource show all
Defined in:
lib/jbr/invoice.rb

Constant Summary collapse

FIND =
<<~GRAPHQL.freeze
  query($id: EncodedId!) {
    invoice(id: $id) { id total invoiceStatus issuedDate
      jobs { nodes { id completedAt } } }
  }
GRAPHQL

Instance Attribute Summary collapse

Attributes inherited from Resource

#id

Instance Method Summary collapse

Methods inherited from Resource

#initialize

Constructor Details

This class inherits a constructor from Jbr::Resource

Instance Attribute Details

#job_idObject (readonly)

Returns the value of attribute job_id.



10
11
12
# File 'lib/jbr/invoice.rb', line 10

def job_id
  @job_id
end

#totalObject (readonly)

Returns the value of attribute total.



10
11
12
# File 'lib/jbr/invoice.rb', line 10

def total
  @total
end

Instance Method Details

#completed_atTime

Returns the job completed time.

Returns:

  • (Time)

    the job completed time



34
35
36
# File 'lib/jbr/invoice.rb', line 34

def completed_at
  Time.iso8601(@completed_at) if @completed_at
end

#find(id) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/jbr/invoice.rb', line 12

def find(id)
  output = @oauth.query FIND, variables: { id: id  }
  return unless invoice = output['invoice']
  return if invoice['invoiceStatus'].eql? 'draft'

  @id = invoice['id']
  @total = invoice['total']
  @issued_at = invoice['issuedDate']

  job = invoice.dig('jobs', 'nodes', 0) || {}
  @job_id = job['id']
  @completed_at = job['completedAt']

  self
end

#issued_atDate

Returns the invoice issued time.

Returns:

  • (Date)

    the invoice issued time



29
30
31
# File 'lib/jbr/invoice.rb', line 29

def issued_at
  Time.iso8601(@issued_at) if @issued_at
end