Skip to content

A wrapper to use the WaveApps's graphql api in your laravel SaaS application. This repo can manage webapps account on behalf of third party users.

Notifications You must be signed in to change notification settings

amritms/waveapps-client-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WaveApps Client PHP

A wrapper to use the WaveApps's graphql api in your laravel SaaS application. This repo can manage webapps account on behalf of third party users.

Note: If you are looking to use waveapps on behalf of a single user then use subbe/waveapp

The original documentation is available at:

To use WaveApps, you will need to register on the developer portal. And create new application and fetch client_id, client_secret

Requirement & Install

Open you composer.json file and add

"amritms/waveapps-client-php":"0.1"

and go to the location of your composer file in terminal and run

composer update

php artisan vendor:publish

Route

Route::post('webapps/token', 'WebappsController@handleToken');

Update your .env file to include

WAVE_CLIENT_ID=
WAVE_CLIENT_SECRET=
WAVE_GRAPHQL_AUTH_URI=https://api.waveapps.com/oauth2/token/
WAVE_GRAPHQL_URI=https://gql.waveapps.com/graphql/public

Queries

  • user
  • countries
  • country
  • customers
  • products
  • invoices
  • businesses
  • business
  • currencies
  • currency
  • accountTypes
  • accountSubyypes

Mutations

Customer

  • customerCreate
  • customerPatch
  • customerDelete

Account

  • accountCreate
  • accountPatch
  • accountArchive

Product

  • productCreate
  • productPatch
  • productArchive

Sales

  • salesTaxCreate
  • salesTaxPatch
  • salesTaxRateCreate
  • salesTaxArchive

Money Transaction

  • moneyTransactionCreate

Invoice

  • invoiceCreate
  • invoiceDelete
  • invoiceSend
  • invoiceApprove
  • invoiceMarkSent

How to use

Query

$waveapp = new \Amritms\WaveappsClientPhp\Waveapps();
$countries = $waveapp->countries();

--- OR ---

$country = $waveapp->country(['code' => 'US']);

Mutation

$waveapp = new \Amritms\WaveappsClientPhp\Waveapps();
$customer = [
    "input" => [
        "businessId" => "<REPLACE-THIS-WITH-THE-BUSINESS-ID>",
        "name" => "Lucifer Morningstar",
        "firstName" => "Lucifer",
        "lastName" => "Morningstar",
        "displayId" => "Lucifer",
        "email" => "[email protected]",
        "mobile" => "6666666",
        "phone" => "6666666",
        "fax" => "",
        "address" => [
            "addressLine1" => "666 Diablo Street",
            "addressLine2" => "Hell's Kitchen",
            "city" => "New York",
            "postalCode" => "10018",
            "countryCode" => "US"
        ],
        "tollFree" => "",
        "website" => "",
        "internalNotes" => "",
        "currency" => "USD",
        "shippingDetails" => [
            "name" => "Lucifer",
            "phone" => "6666666",
            "instructions" => "pray",
            "address" => [
                "addressLine1" => "666 Diablo Street",
                "addressLine2" => "Hell's Kitchen",
                "city" => "New York",
                "postalCode" => "10018",
                "countryCode" => "US"
            ]
        ]
    ]
];

$newCustomer = $waveapp->customerCreate($customer, "CustomerCreateInput");

Note: This repo is based on subbe/waveapp

About

A wrapper to use the WaveApps's graphql api in your laravel SaaS application. This repo can manage webapps account on behalf of third party users.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages