UNPKG

podium-sdk

Version:
157 lines (124 loc) 4.79 kB
# Podium Client JavaScript SDK This library allows you to access the Podium Client REST API for building client applications. ## Installation ``` npm install podium-sdk ``` ## Usage ``` import { Podium, PodiumPaginator, PodiumFilter, PodiumSettings } from 'podium-sdk' let podiumSettings = new PodiumSettings().setEndpoint('https://api.podiumrewards.com/') let podium = new Podium(podiumSettings) podium.Auth.login(email, password, slug).then(rsp => { console.log(rsp.message) }).catch(error => { console.log(error.message) }) let filter = new PodiumFilter() filter.setValues({ customer_id: 1, search: 'Dan' }) let paginator = new PodiumPaginator() paginator.setPerPage(5) paginator.setSortField('last_name') paginator.setSortDirection('asc') podium.Users.List(filter, paginator).then((rsp) => { console.log(rsp) }) ``` ## Settings Settings can be passed into the Podium constructor as a `PodiumSettings` class. | Name | Type | Default | Description | | :------------- | :------------- | :------------- | :------------- | | setEndpoint | url | https://api.podiumrewards.com/ | The Podium endpoint URL. | | setLocale | API_LOCALE | en-US | The Podium endpoint URL. | | setOnRequestError | function(IPodiumErrorResponse) | | Callback when an API error is encountered. | | setVersion | number | 1 | Version of Podium API to use. | ## API methods ### Authentication Log in with a username and password and receive an API token to interact with other resources available via the API. The logout endpoint deletes the authentication token. ``` Podium.Auth.Login(email, password, slug) Podium.Auth.LoginAs(userAccount, token, slug) Podium.Auth.SSO(token) Podium.Auth.GetToken() Podium.Auth.SetToken(string) Podium.Auth.HasToken() Podium.Auth.logout() ``` ### Podium Resource Log in with a username and password and receive an API token to interact with other resources available via the API. The logout endpoint deletes the authentication token. ##### Get | Name | Type | Required? | Description | | :------------- | :------------- | :------------- | :------------- | | id | number/string | yes | ID of Resource. | ##### List | Name | Type | Required? | Description | | :------------- | :------------- | :------------- | :------------- | | arg1 | Filter/Paginator | no | Filter or Paginator Object. | | paginator | Paginator | no | Paginator if first parameter is filter. | ##### Create | Name | Type | Required? | Description | | :------------- | :------------- | :------------- | :------------- | | object | object | no | Object to be created. | ##### Update | Name | Type | Required? | Description | | :------------- | :------------- | :------------- | :------------- | | id | number/string | yes | ID of Resource. | | object | object | no | Object to be deleted. | ##### Delete | Name | Type | Required? | Description | | :------------- | :------------- | :------------- | :------------- | | id | number/string | yes | ID of object to be delete. | ### Methods that extend Resource ``` Podium.Discretionary.DirectReports Podium.Discretionary.Discretionary Podium.Discretionary.Ledger Podium.Discretionary.Transactions Podium.Ecards.Categories Podium.Ecards.Templates Podium.Permissions Podium.Shop.Cart Podium.Shop.Orders Podium.Shop.Products Podium.Shop.Wishlist Podium.User.Address Podium.User.Profile Podium.Users ``` ### Methods with additional functions ``` Podium.Accounts.GetTravelUrl(AccountID) Podium.Accounts.GetTransactions(AccountID, Filter, Paginator) Podium.Accounts.Transfer(AccountID, ReceiverAccountID, Amount, SenderTransactionDescription, ReceiverTransactionDescription) Podium.Ecards.Ecards.GetReceived(Paginator) Podium.Ecards.Ecards.GetSent(Paginator) Podium.Ecards.Ecards.GetPending(Paginator) Podium.Ledgers.GetTransactions(LedgerID, Filter, Paginator) Podium.LRG.GetUrl(redirectUrl) Podium.LRG.Redirect(redirectUrl) Podium.Orders.Cancel(orderId: number | string) Podium.Shop.Cart.Confirm(cartId, addressId, ledgerId) Podium.Shop.Cart.Checkout(cartId, addressId, ledgerId) Podium.Terms.Accept(termsId) Podium.Utils.isRequesting - Property of boolean if SDK is currently making a request Podium.Utils.RequestsInProgress - array of request URL's SDK is currently making ``` ### Paginator properties The following set properties are chainable: ``` PodiumPaginator.setPage(number) PodiumPaginator.setPerPage(number) PodiumPaginator.setSortField(field) PodiumPaginator.setSortDirection([asc|desc]) PodiumPaginator.setSortDesc(boolean) PodiumPaginator.toParams() ``` ### Filter properties The following set properties are chainable: ``` PodiumFilter.getFacets() PodiumFilter.setFacets(object) PodiumFilter.setValues(object) PodiumFilter.getValues(number) PodiumFilter.toParams() ```