podium-sdk
Version:
Podium Client JavaScript SDK
157 lines (124 loc) • 4.79 kB
Markdown
# 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()
```