class Activewave
Constants
- LIST_ALL_INVOICES_QUERY
- LIST_ALL_PRODUCTS_QUERY
- LIST_BUSINESSES
- LIST_CUSTOMERS_QUERY
- LIST_USERS
Attributes
api_token[RW]
business_id[RW]
Public Class Methods
new(business_id, api_token)
click to toggle source
# File lib/activewave.rb, line 10 def initialize(business_id, api_token) @business_id = business_id @api_token = api_token end
Public Instance Methods
create_customer(name, first_name, last_name, email=nil)
click to toggle source
# File lib/activewave.rb, line 224 def create_customer(name, first_name, last_name, email=nil) create_a_customer(name, first_name, last_name, email) end
create_expense_record(date, anchor_account_id, line_item_account_id, amount, desc)
click to toggle source
# File lib/activewave.rb, line 237 def create_expense_record(date, anchor_account_id, line_item_account_id, amount, desc) create_a_transaction(date, anchor_account_id, line_item_account_id, amount, desc, "EXPENSES") end
create_invoice(driver_id, product_id, status="SAVED")
click to toggle source
# File lib/activewave.rb, line 228 def create_invoice(driver_id, product_id, status="SAVED") create_an_invoice(driver_id, product_id, status) end
create_sales_record(date, anchor_account_id, line_item_account_id, amount, desc)
click to toggle source
# File lib/activewave.rb, line 233 def create_sales_record(date, anchor_account_id, line_item_account_id, amount, desc) create_a_transaction(date, anchor_account_id, line_item_account_id, amount, desc) end
current_user()
click to toggle source
# File lib/activewave.rb, line 245 def current_user execute(LIST_USERS) end
get_current_user()
click to toggle source
# File lib/activewave.rb, line 253 def get_current_user execute(LIST_USERS) end
get_user_details()
click to toggle source
# File lib/activewave.rb, line 249 def get_user_details execute(LIST_USERS) end
list_all_assets()
click to toggle source
# File lib/activewave.rb, line 277 def list_all_assets list_assets_or_liabilities() end
list_all_businesses()
click to toggle source
# File lib/activewave.rb, line 273 def list_all_businesses execute(LIST_BUSINESSES) end
list_all_customers()
click to toggle source
# File lib/activewave.rb, line 265 def list_all_customers execute(LIST_CUSTOMERS_QUERY) end
list_all_expenses()
click to toggle source
# File lib/activewave.rb, line 293 def list_all_expenses list_assets_or_liabilities("EXPENSE") end
list_all_income()
click to toggle source
# File lib/activewave.rb, line 285 def list_all_income list_assets_or_liabilities("INCOME") end
list_all_incomes()
click to toggle source
# File lib/activewave.rb, line 281 def list_all_incomes list_assets_or_liabilities("INCOME") end
list_all_invoices()
click to toggle source
# File lib/activewave.rb, line 269 def list_all_invoices execute(LIST_ALL_INVOICES_QUERY) end
list_all_products()
click to toggle source
# File lib/activewave.rb, line 261 def list_all_products execute(LIST_ALL_PRODUCTS_QUERY) end
list_incomes()
click to toggle source
# File lib/activewave.rb, line 289 def list_incomes list_assets_or_liabilities("INCOME") end
list_users()
click to toggle source
# File lib/activewave.rb, line 241 def list_users execute(LIST_USERS) end
user()
click to toggle source
# File lib/activewave.rb, line 257 def user execute(LIST_USERS) end
Private Instance Methods
create_a_customer(name, first_name, last_name, email)
click to toggle source
# File lib/activewave.rb, line 313 def create_a_customer(name, first_name, last_name, email) @@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\"}}}" response = @@https.request(@@request) JSON.parse(response.read_body) end
create_a_transaction(date, anchor_account_id, line_item_account_id, amount, desc, type="SALES")
click to toggle source
# File lib/activewave.rb, line 298 def create_a_transaction(date, anchor_account_id, line_item_account_id, amount, desc, type="SALES") action = {SALES: ["DEPOSIT", "INCREASE"], EXPENSES: ["WITHDRAWAL", "INCREASE"]} current_action = action[type.to_sym] @@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]}\"}]}}}" response = @@https.request(@@request) JSON.parse(response.read_body) end
create_an_invoice(driver_id, product_id, status="SAVED")
click to toggle source
# File lib/activewave.rb, line 306 def create_an_invoice(driver_id, product_id, status="SAVED") @@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}\"}}}" response = @@https.request(@@request) JSON.parse(response.read_body) end
execute(query)
click to toggle source
# File lib/activewave.rb, line 328 def execute(query) HTTParty.post( @@wave_api_url, headers: { 'Content-Type' => 'application/json', 'Authorization' => "Bearer #{@api_token}" }, body: { query: "{#{query}}" }.to_json ).parsed_response end
list_assets_or_liabilities(filter="ASSET")
click to toggle source
# File lib/activewave.rb, line 320 def list_assets_or_liabilities(filter="ASSET") @@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}}" response = @@https.request(@@request) JSON.parse(response.read_body) end