activewave 0.0.6 → 0.0.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 +4 -4
- data/lib/activewave.rb +43 -40
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c79c9fb72268a1fa1be829de419b9bcb516d5053bbc6ea7cf5046dd6d4db7249
|
|
4
|
+
data.tar.gz: 9da24281983c5b0d27c210dbeedb9e21a849b1de520107f9c94bf93bfeb39570
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 79fe27e4c03a24d991dfe89e7d12c3016d456fb9e46e45879c784aa96d5194abdbbae93e7f7d97963fb60d6fbf4829a2b4ec3b0ef841d81c16c3322546d6ea5b
|
|
7
|
+
data.tar.gz: c67ddef291e681f75ea099016387a54bccdbbcbad35ebeeac836efb241f3fa5e4f00f2b2074967ddea3bb21ad67d0a992aba3a4151d7bb6fb8d53e3bc29a5c45
|
data/lib/activewave.rb
CHANGED
|
@@ -3,23 +3,26 @@ require 'json'
|
|
|
3
3
|
require "uri"
|
|
4
4
|
require "net/http"
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
class Activewave
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
BUSINESS_ID = ENV.fetch("#{BUSINESS_ID}")
|
|
10
|
-
API_TOKEN = ENV.fetch("#{API_TOKEN}")
|
|
8
|
+
attr_accessor :business_id, :api_token
|
|
11
9
|
|
|
12
|
-
|
|
10
|
+
def initialize(business_id, api_token)
|
|
11
|
+
@business_id = business_id
|
|
12
|
+
@api_token = api_token
|
|
13
13
|
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
@@wave_api_url = "https://gql.waveapps.com/graphql/public"
|
|
17
|
+
url = URI(@@wave_api_url)
|
|
14
18
|
@@https = Net::HTTP.new(url.host, url.port)
|
|
15
19
|
@@https.use_ssl = true
|
|
16
|
-
|
|
17
20
|
@@request = Net::HTTP::Post.new(url)
|
|
18
|
-
@@request["Authorization"] = "Bearer #{
|
|
21
|
+
@@request["Authorization"] = "Bearer #{@api_token}"
|
|
19
22
|
@@request["Content-Type"] = "application/json"
|
|
20
23
|
|
|
21
24
|
LIST_ALL_PRODUCTS_QUERY = %{
|
|
22
|
-
business(id: "#{
|
|
25
|
+
business(id: "#{@business_id}") {
|
|
23
26
|
id
|
|
24
27
|
products(page: 1, pageSize: 100) {
|
|
25
28
|
pageInfo {
|
|
@@ -51,7 +54,7 @@ module ACTIVEWAVE
|
|
|
51
54
|
}
|
|
52
55
|
|
|
53
56
|
LIST_CUSTOMERS_QUERY = %{
|
|
54
|
-
business(id: "#{
|
|
57
|
+
business(id: "#{@business_id}") {
|
|
55
58
|
id
|
|
56
59
|
customers(page: 1, pageSize: 100, sort: [NAME_ASC]) {
|
|
57
60
|
pageInfo {
|
|
@@ -71,7 +74,7 @@ module ACTIVEWAVE
|
|
|
71
74
|
}
|
|
72
75
|
|
|
73
76
|
LIST_ALL_INVOICES_QUERY = %{
|
|
74
|
-
business(id: "#{
|
|
77
|
+
business(id: "#{@business_id}") {
|
|
75
78
|
id
|
|
76
79
|
isClassicInvoicing
|
|
77
80
|
invoices(page: 0, pageSize: 100) {
|
|
@@ -218,121 +221,121 @@ module ACTIVEWAVE
|
|
|
218
221
|
}
|
|
219
222
|
|
|
220
223
|
|
|
221
|
-
def
|
|
224
|
+
def create_customer(name, first_name, last_name, email=nil)
|
|
222
225
|
create_a_customer(name, first_name, last_name, email)
|
|
223
226
|
end
|
|
224
227
|
|
|
225
|
-
def
|
|
228
|
+
def create_invoice(driver_id, product_id, status="SAVED")
|
|
226
229
|
create_an_invoice(driver_id, product_id, status)
|
|
227
230
|
end
|
|
228
231
|
|
|
229
232
|
|
|
230
|
-
def
|
|
233
|
+
def create_sales_record(date, anchor_account_id, line_item_account_id, amount, desc)
|
|
231
234
|
create_a_transaction(date, anchor_account_id, line_item_account_id, amount, desc)
|
|
232
235
|
end
|
|
233
236
|
|
|
234
|
-
def
|
|
237
|
+
def create_expense_record(date, anchor_account_id, line_item_account_id, amount, desc)
|
|
235
238
|
create_a_transaction(date, anchor_account_id, line_item_account_id, amount, desc, "EXPENSES")
|
|
236
239
|
end
|
|
237
240
|
|
|
238
|
-
def
|
|
241
|
+
def list_users
|
|
239
242
|
execute(LIST_USERS)
|
|
240
243
|
end
|
|
241
244
|
|
|
242
|
-
def
|
|
245
|
+
def current_user
|
|
243
246
|
execute(LIST_USERS)
|
|
244
247
|
end
|
|
245
248
|
|
|
246
|
-
def
|
|
249
|
+
def get_user_details
|
|
247
250
|
execute(LIST_USERS)
|
|
248
251
|
end
|
|
249
252
|
|
|
250
|
-
def
|
|
253
|
+
def get_current_user
|
|
251
254
|
execute(LIST_USERS)
|
|
252
255
|
end
|
|
253
256
|
|
|
254
|
-
def
|
|
257
|
+
def user
|
|
255
258
|
execute(LIST_USERS)
|
|
256
259
|
end
|
|
257
260
|
|
|
258
|
-
def
|
|
261
|
+
def list_all_products
|
|
259
262
|
execute(LIST_ALL_PRODUCTS_QUERY)
|
|
260
263
|
end
|
|
261
264
|
|
|
262
|
-
def
|
|
265
|
+
def list_all_customers
|
|
263
266
|
execute(LIST_CUSTOMERS_QUERY)
|
|
264
267
|
end
|
|
265
268
|
|
|
266
|
-
def
|
|
269
|
+
def list_all_invoices
|
|
267
270
|
execute(LIST_ALL_INVOICES_QUERY)
|
|
268
271
|
end
|
|
269
272
|
|
|
270
|
-
def
|
|
273
|
+
def list_all_businesses
|
|
271
274
|
execute(LIST_BUSINESSES)
|
|
272
275
|
end
|
|
273
276
|
|
|
274
|
-
def
|
|
277
|
+
def list_all_assets
|
|
275
278
|
list_assets_or_liabilities()
|
|
276
279
|
end
|
|
277
280
|
|
|
278
|
-
def
|
|
281
|
+
def list_all_incomes
|
|
279
282
|
list_assets_or_liabilities("INCOME")
|
|
280
283
|
end
|
|
281
284
|
|
|
282
|
-
def
|
|
285
|
+
def list_all_income
|
|
283
286
|
list_assets_or_liabilities("INCOME")
|
|
284
287
|
end
|
|
285
288
|
|
|
286
|
-
def
|
|
289
|
+
def list_incomes
|
|
287
290
|
list_assets_or_liabilities("INCOME")
|
|
288
291
|
end
|
|
289
292
|
|
|
290
|
-
def
|
|
293
|
+
def list_all_expenses
|
|
291
294
|
list_assets_or_liabilities("EXPENSE")
|
|
292
295
|
end
|
|
293
296
|
|
|
294
297
|
private
|
|
295
|
-
def
|
|
298
|
+
def create_a_transaction(date, anchor_account_id, line_item_account_id, amount, desc, type="SALES")
|
|
296
299
|
action = {SALES: ["DEPOSIT", "INCREASE"], EXPENSES: ["WITHDRAWAL", "INCREASE"]}
|
|
297
300
|
current_action = action[type.to_sym]
|
|
298
|
-
@@request.body = "{\"query\":\" mutation ($input:MoneyTransactionCreateInput!){\\n moneyTransactionCreate(input:$input){\\n didSucceed\\n inputErrors{\\n path\\n message\\n code\\n }\\n transaction{\\n id\\n }\\n }\\n }\",\"variables\":{\"input\":{\"businessId\":\"#{
|
|
301
|
+
@@request.body = "{\"query\":\" mutation ($input:MoneyTransactionCreateInput!){\\n moneyTransactionCreate(input:$input){\\n didSucceed\\n inputErrors{\\n path\\n message\\n code\\n }\\n transaction{\\n id\\n }\\n }\\n }\",\"variables\":{\"input\":{\"businessId\":\"#{@business_id}\",\"externalId\":\"#{desc + Time.now.to_s}\",\"date\":\"#{date}\",\"description\":\"#{desc}\",\"anchor\":{\"accountId\":\"#{anchor_account_id}\",\"amount\":#{amount},\"direction\":\"#{current_action[0]}\"},\"lineItems\":[{\"accountId\":\"#{line_item_account_id}\",\"amount\":#{amount},\"balance\":\"#{current_action[1]}\"}]}}}"
|
|
299
302
|
response = @@https.request(@@request)
|
|
300
303
|
JSON.parse(response.read_body)
|
|
301
304
|
end
|
|
302
305
|
|
|
303
|
-
def
|
|
304
|
-
@@request.body = "{\"query\":\"mutation ($input: InvoiceCreateInput!) {\\n invoiceCreate(input: $input) {\\n didSucceed\\n inputErrors {\\n message\\n code\\n path\\n }\\n invoice {\\n id\\n createdAt\\n modifiedAt\\n pdfUrl\\n viewUrl\\n status\\n title\\n subhead\\n invoiceNumber\\n invoiceDate\\n poNumber\\n customer {\\n id\\n name\\n # Can add additional customer fields here\\n }\\n currency {\\n code\\n }\\n dueDate\\n amountDue {\\n value\\n currency {\\n symbol\\n }\\n }\\n amountPaid {\\n value\\n currency {\\n symbol\\n }\\n }\\n taxTotal {\\n value\\n currency {\\n symbol\\n }\\n }\\n total {\\n value\\n currency {\\n symbol\\n }\\n }\\n exchangeRate\\n footer\\n memo\\n disableCreditCardPayments\\n disableBankPayments\\n itemTitle\\n unitTitle\\n priceTitle\\n amountTitle\\n hideName\\n hideDescription\\n hideUnit\\n hidePrice\\n hideAmount\\n items {\\n product {\\n id\\n name\\n # Can add additional product fields here\\n }\\n description\\n quantity\\n price\\n subtotal {\\n value\\n currency {\\n symbol\\n }\\n }\\n total {\\n value\\n currency {\\n symbol\\n }\\n }\\n account {\\n id\\n name\\n subtype {\\n name\\n value\\n }\\n # Can add additional account fields here\\n }\\n taxes {\\n amount {\\n value\\n }\\n salesTax {\\n id\\n name\\n # Can add additional sales tax fields here\\n }\\n }\\n }\\n lastSentAt\\n lastSentVia\\n lastViewedAt\\n }\\n }\\n}\",\"variables\":{\"input\":{\"businessId\":\"#{
|
|
306
|
+
def create_an_invoice(driver_id, product_id, status="SAVED")
|
|
307
|
+
@@request.body = "{\"query\":\"mutation ($input: InvoiceCreateInput!) {\\n invoiceCreate(input: $input) {\\n didSucceed\\n inputErrors {\\n message\\n code\\n path\\n }\\n invoice {\\n id\\n createdAt\\n modifiedAt\\n pdfUrl\\n viewUrl\\n status\\n title\\n subhead\\n invoiceNumber\\n invoiceDate\\n poNumber\\n customer {\\n id\\n name\\n # Can add additional customer fields here\\n }\\n currency {\\n code\\n }\\n dueDate\\n amountDue {\\n value\\n currency {\\n symbol\\n }\\n }\\n amountPaid {\\n value\\n currency {\\n symbol\\n }\\n }\\n taxTotal {\\n value\\n currency {\\n symbol\\n }\\n }\\n total {\\n value\\n currency {\\n symbol\\n }\\n }\\n exchangeRate\\n footer\\n memo\\n disableCreditCardPayments\\n disableBankPayments\\n itemTitle\\n unitTitle\\n priceTitle\\n amountTitle\\n hideName\\n hideDescription\\n hideUnit\\n hidePrice\\n hideAmount\\n items {\\n product {\\n id\\n name\\n # Can add additional product fields here\\n }\\n description\\n quantity\\n price\\n subtotal {\\n value\\n currency {\\n symbol\\n }\\n }\\n total {\\n value\\n currency {\\n symbol\\n }\\n }\\n account {\\n id\\n name\\n subtype {\\n name\\n value\\n }\\n # Can add additional account fields here\\n }\\n taxes {\\n amount {\\n value\\n }\\n salesTax {\\n id\\n name\\n # Can add additional sales tax fields here\\n }\\n }\\n }\\n lastSentAt\\n lastSentVia\\n lastViewedAt\\n }\\n }\\n}\",\"variables\":{\"input\":{\"businessId\":\"#{@business_id}\",\"customerId\":\"#{driver_id}\",\"items\":[{\"productId\":\"#{product_id}\"}], \"status\":\"#{status}\"}}}"
|
|
305
308
|
response = @@https.request(@@request)
|
|
306
309
|
JSON.parse(response.read_body)
|
|
307
310
|
end
|
|
308
311
|
|
|
309
312
|
|
|
310
|
-
def
|
|
311
|
-
@@request.body = "{\"query\":\"mutation ($input: CustomerCreateInput!) {\\n customerCreate(input: $input) {\\n didSucceed\\n inputErrors {\\n code\\n message\\n path\\n }\\n customer {\\n id\\n name\\n firstName\\n lastName\\n email\\n address {\\n addressLine1\\n addressLine2\\n city\\n province {\\n code\\n name\\n }\\n country {\\n code\\n name\\n }\\n postalCode\\n }\\n currency {\\n code\\n }\\n }\\n }\\n}\",\"variables\":{\"input\":{\"businessId\":\"#{
|
|
313
|
+
def create_a_customer(name, first_name, last_name, email)
|
|
314
|
+
@@request.body = "{\"query\":\"mutation ($input: CustomerCreateInput!) {\\n customerCreate(input: $input) {\\n didSucceed\\n inputErrors {\\n code\\n message\\n path\\n }\\n customer {\\n id\\n name\\n firstName\\n lastName\\n email\\n address {\\n addressLine1\\n addressLine2\\n city\\n province {\\n code\\n name\\n }\\n country {\\n code\\n name\\n }\\n postalCode\\n }\\n currency {\\n code\\n }\\n }\\n }\\n}\",\"variables\":{\"input\":{\"businessId\":\"#{@business_id}\",\"name\":\"#{name}\",\"firstName\":\"#{first_name}\",\"lastName\":\"#{last_name}\",\"email\":\"#{email}\",\"currency\":\"GHS\"}}}"
|
|
312
315
|
response = @@https.request(@@request)
|
|
313
316
|
JSON.parse(response.read_body)
|
|
314
317
|
end
|
|
315
318
|
|
|
316
319
|
|
|
317
|
-
def
|
|
318
|
-
@@request.body = "{\"query\":\"query ($businessId: ID!, $page: Int!, $pageSize: Int!) {\\n business(id: $businessId) {\\n id\\n accounts(page: $page, pageSize: $pageSize, types: [#{filter}]) {\\n pageInfo {\\n currentPage\\n totalPages\\n totalCount\\n }\\n edges {\\n node {\\n id\\n name\\n description\\n displayId\\n type {\\n name\\n value\\n }\\n subtype {\\n name\\n value\\n }\\n normalBalanceType\\n isArchived\\n }\\n }\\n }\\n }\\n}\",\"variables\":{\"businessId\":\"#{
|
|
320
|
+
def list_assets_or_liabilities(filter="ASSET")
|
|
321
|
+
@@request.body = "{\"query\":\"query ($businessId: ID!, $page: Int!, $pageSize: Int!) {\\n business(id: $businessId) {\\n id\\n accounts(page: $page, pageSize: $pageSize, types: [#{filter}]) {\\n pageInfo {\\n currentPage\\n totalPages\\n totalCount\\n }\\n edges {\\n node {\\n id\\n name\\n description\\n displayId\\n type {\\n name\\n value\\n }\\n subtype {\\n name\\n value\\n }\\n normalBalanceType\\n isArchived\\n }\\n }\\n }\\n }\\n}\",\"variables\":{\"businessId\":\"#{@business_id}\",\"page\":1,\"pageSize\":100}}"
|
|
319
322
|
response = @@https.request(@@request)
|
|
320
323
|
JSON.parse(response.read_body)
|
|
321
324
|
end
|
|
322
325
|
|
|
323
326
|
|
|
324
327
|
|
|
325
|
-
def
|
|
328
|
+
def execute(query)
|
|
326
329
|
HTTParty.post(
|
|
327
|
-
|
|
330
|
+
@@wave_api_url,
|
|
328
331
|
headers: {
|
|
329
332
|
'Content-Type' => 'application/json',
|
|
330
|
-
'Authorization' => "Bearer #{
|
|
333
|
+
'Authorization' => "Bearer #{@api_token}"
|
|
331
334
|
},
|
|
332
335
|
body: {
|
|
333
336
|
query: "{#{query}}"
|
|
334
337
|
}.to_json
|
|
335
|
-
)
|
|
338
|
+
).parsed_response
|
|
336
339
|
end
|
|
337
340
|
|
|
338
341
|
end
|