waveapps 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7add40d1a01cf89f22a73ac635a539331481fcfe1ad607d94f8794adf7b0bd1c
4
- data.tar.gz: 5020a93cfef8117a90292fbdd1835a3b27283184902c7831c0e377680283f6d5
3
+ metadata.gz: 50dbb250a88d5bea155da73a27a5b0149c8684395b33ec6db4ee84e8c08fe6f3
4
+ data.tar.gz: 441d07ba0bd21da26e8987587ccf2f92ae456cfd30282bae25a7d47223d957da
5
5
  SHA512:
6
- metadata.gz: 47a0f388436dd8521eb1f69d77b1ba9ce2328f22632f272ea6ec328ad88136c42ff4d483aed27d55f84746ec5ea6ece81c4b23fdbb2e5a282040a8e627e56235
7
- data.tar.gz: d9daac12bff6d0c364d441dd95850a0717d57c975c522fae1cc089430cd2d51464dc7204946eabd5e57aae71d19659d3513ad0ae14791a78221e52b907aacf16
6
+ metadata.gz: 002eda0511d2f230cb6e564be7c7634952268e8b7a1f3049230806da86f6ee2a4f14f794d17227b92b2d6a6bdfbb48e2d94144b1cd1fa2cffd980b510f6eac6a
7
+ data.tar.gz: ed1d2f1290d6e4d043dbeed8bd8229d7f30370834ca8a6bcf235569c982217b509160f417d404f8375e6fca191a03047b6ffa9366f89bed15da11417195758d0
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- waveapps (0.1.5)
4
+ waveapps (0.1.6)
5
5
  graphql-client (~> 0.16)
6
6
 
7
7
  GEM
@@ -3,26 +3,91 @@
3
3
  ## Create invoice
4
4
 
5
5
  ```ruby
6
- Waveapps::Invoice.create_invoice(business_id: <BUSINESS_ID>, customer_id: <CUSTOMER_ID>, items: [{product_id: <PRODUCT_ID>}])
6
+ Waveapps::Invoice.create_invoice(
7
+ business_id: <BUSINESS_ID>,
8
+ customer_id: <CUSTOMER_ID>,
9
+ items: [
10
+ {
11
+ product_id: <PRODUCT_ID>
12
+ }
13
+ ]
14
+ )
7
15
  ```
8
- Optional arguments
16
+
17
+ ### Optional arguments
9
18
 
10
19
  `status`, `currency`, `title`, `invoice_number`,
11
20
  `po_number`, `invoice_date`, `exchange_rate`, `due_date`,
12
21
  `memo`, `footer`, `disable_amex_payments`, `disable_credit_card_payments`,
13
22
  `disable_bank_payments`, `item_title`, `unit_title`, `price_title`, `amount_title`, `hide_name`, `hide_description`, `hide_unit`, `hide_price`, `hide_amount`
14
23
 
24
+ The `items` argument takes a mandatory `product_id` value and `taxes`, `quantity`, `description`,
25
+ `unit_price`. The `description` and `unit_price` will override the values in the product.
26
+
27
+ The `taxes` object inside `items` takes a mandatory `sales_tax_id` and an optional `amount`.
28
+
29
+ The default `status` on creation is `DRAFT`. You can override this to `SAVED` when calling this method
30
+
31
+ ### Example with taxes
32
+
33
+ ```ruby
34
+ Waveapps::Invoice.create_invoice(
35
+ business_id: <BUSINESS_ID>,
36
+ customer_id: <CUSTOMER_ID>,
37
+ items: [
38
+ {
39
+ product_id: <PRODUCT_ID>,
40
+ taxes: [
41
+ {
42
+ amount: 89.7,
43
+ sales_tax_id: <SALES_TAX_ID>
44
+ }
45
+ ]
46
+ }
47
+ ]
48
+ )
49
+ ```
50
+
51
+ ### Example with product override
52
+
53
+ ```ruby
54
+ Waveapps::Invoice.create_invoice(
55
+ business_id: <BUSINESS_ID>,
56
+ customer_id: <CUSTOMER_ID>,
57
+ items: [
58
+ {
59
+ product_id: <PRODUCT_ID>,
60
+ description: "5 Watt C7 light bulb",
61
+ unit_price: "2.7",
62
+ quantity: 5
63
+ }
64
+ ]
65
+ )
66
+ ```
67
+
68
+
15
69
  ## List invoices
16
70
  ```ruby
17
71
  Waveapps::Invoice.list_invoices(business_id: <BUSINESS_ID>)
18
72
  ```
19
73
 
74
+ ### Optional arguments
75
+
76
+ `status`, `currency`, `title`, `invoice_number`,
77
+ `po_number`, `invoice_date`, `exchange_rate`, `due_date`,
78
+ `memo`, `footer`, `disable_amex_payments`, `disable_credit_card_payments`,
79
+ `disable_bank_payments`, `item_title`, `unit_title`, `price_title`, `amount_title`, `hide_name`, `hide_description`, `hide_unit`, `hide_price`, `hide_amount`
80
+
81
+ The default `page_size` is 10 and `page` is 1
82
+ Check the allowed `sort` arguments [here](https://developer.waveapps.com/hc/en-us/articles/360019968212#invoicesort). By default, the results are sorted by `[CREATED_AT_DESC]`.
83
+
84
+
20
85
  ## Send invoice
21
86
 
22
87
  Provide email of recipients in the `to` argument. If you have more than one recipient, pass it as an array.
23
88
 
24
89
  ```ruby
25
- Waveapps::Invoice.send_invoice(invoice_id: <INVOICE_ID>, to: [<EMAIL>])
90
+ Waveapps::Invoice.send_invoice(invoice_id: <INVOICE_ID>, to: [<EMAIL>, <EMAIL>])
26
91
  ```
27
92
 
28
93
  Optional arguments
@@ -46,8 +111,7 @@ Waveapps::Invoice.delete_invoice(invoice_id: <INVOICE_ID>)
46
111
 
47
112
  ## Mark invoice as sent
48
113
 
49
- Provide one of the following for `send_method`
50
- `EXPORT_PDF`, `GMAIL`, `MARKED_SENT`, `NOT_SENT`, `OUTLOOK`, `SHARED_LINK`, `SKIPPED`, `WAVE`, `YAHOO`
114
+ Provide a `send_method` from one of the allowed methods [here](https://developer.waveapps.com/hc/en-us/articles/360019968212#invoicesendmethod)
51
115
 
52
116
  ```ruby
53
117
  Waveapps::Invoice.mark_as_sent(invoice_id: <INVOICE_ID>, send_method: <SEND_METHOD>)
@@ -3,11 +3,19 @@
3
3
  module Waveapps
4
4
  class Invoice
5
5
  ListInvoicesQuery = Waveapps::Api::Client.parse <<-'GRAPHQL'
6
- query($businessId: ID!, $page: Int!, $pageSize: Int!) {
6
+ query(
7
+ $businessId: ID!, $page: Int!, $pageSize: Int!, $sort: [InvoiceSort!]!,
8
+ $status: InvoiceStatus, $customerId: ID, $currency: CurrencyCode,
9
+ $sourceId: ID, $invoiceDateStart: Date, $invoiceDateEnd: Date,
10
+ $modifiedAtAfter: DateTime, $modifiedAtBefore: DateTime) {
7
11
  business(id: $businessId) {
8
12
  id
9
13
  isClassicInvoicing
10
- invoices(page: $page, pageSize: $pageSize) {
14
+ invoices(page: $page, pageSize: $pageSize, sort: $sort,
15
+ status: $status, customerId: $customerId, currency: $currency,
16
+ sourceId: $sourceId, invoiceDateStart: $invoiceDateStart,
17
+ invoiceDateEnd: $invoiceDateEnd, modifiedAtAfter: $modifiedAtAfter,
18
+ modifiedAtBefore: $modifiedAtBefore) {
11
19
  pageInfo {
12
20
  currentPage
13
21
  totalPages
@@ -124,14 +132,22 @@ module Waveapps
124
132
  }
125
133
  GRAPHQL
126
134
 
127
- def self.list_invoices(page: 1, page_size: 10, business_id:)
135
+ def self.list_invoices(page: 1, page_size: 10, sort: [ "CREATED_AT_DESC"],
136
+ status: nil, customer_id: nil, currency: nil, source_id: nil,
137
+ invoice_date_start: nil, invoice_date_end: nil, modified_at_after: nil,
138
+ modified_at_before: nil, business_id:
139
+ )
128
140
  response = Waveapps::Api::Client.query(
129
141
  ListInvoicesQuery, variables: {
130
- businessId: business_id, page: page, pageSize: page_size
142
+ businessId: business_id, page: page, pageSize: page_size, sort: sort,
143
+ status: status, customerId: customer_id, currency: currency,
144
+ sourceId: source_id, invoiceDateStart: invoice_date_start,
145
+ invoiceDateEnd: invoice_date_end, modifiedAtAfter: modified_at_after,
146
+ modifiedAtBefore: modified_at_before
131
147
  })
132
148
 
133
- if response.data && response.data.business
134
- return response.data.business.invoices.edges.map(&:node)
149
+ if response.data && response.data.business && response.data.business
150
+ return response.data.business.invoices
135
151
  end
136
152
  Waveapps::Api.handle_errors(response, :business)
137
153
  end
@@ -1,5 +1,5 @@
1
1
  module Waveapps
2
2
  module Ruby
3
- VERSION = "0.1.6"
3
+ VERSION = "0.1.7"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: waveapps
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hannah Masila
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-10 00:00:00.000000000 Z
11
+ date: 2020-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler