shell / loyalty-sdk
Loyalty APIs provides the end points needed in order to generate the user Authorization Tokens, manage offers assigned to a user, and retrieve the Loyalty Points balance of users.
Requires
- php: ^7.2 || ^8.0
- ext-curl: *
- ext-json: *
- apimatic/core: ~0.3.17
- apimatic/core-interfaces: ~0.1.5
- apimatic/unirest-php: ^4.0.6
Requires (Dev)
- phan/phan: 5.4.5
- squizlabs/php_codesniffer: ^3.5
README
Introduction
Loyalty Account Management provides the end points needed in order to generate the user Authorization Tokens which will provide access to the Loyalty APIs and also to update the user profile.
Install the Package
Run the following command to install the package and automatically add the dependency to your composer.json file:
composer require "shell/loyalty-sdk:0.0.3"
Or add it to the composer.json file manually as given below:
"require": { "shell/loyalty-sdk": "0.0.3" }
You can also view the package at: https://packagist.org/packages/shell/loyalty-sdk#0.0.3
Initialize the API Client
Note: Documentation for the client can be found here.
The following parameters are configurable for the API Client:
| Parameter | Type | Description |
|---|---|---|
| environment | Environment |
The API environment. Default: Environment.SIT |
| timeout | int |
Timeout for API calls in seconds. Default: 30 |
| enableRetries | bool |
Whether to enable retries and backoff feature. Default: false |
| numberOfRetries | int |
The number of retries to make. Default: 0 |
| retryInterval | float |
The retry time interval between the endpoint calls. Default: 1 |
| backOffFactor | float |
Exponential backoff factor to increase interval between retries. Default: 2 |
| maximumRetryWaitTime | int |
The maximum wait time in seconds for overall retrying requests. Default: 0 |
| retryOnTimeout | bool |
Whether to retry on request timeout. Default: true |
| httpStatusCodesToRetry | array |
Http status codes to retry against. Default: 408, 413, 429, 500, 502, 503, 504, 521, 522, 524 |
| httpMethodsToRetry | array |
Http methods to retry against. Default: 'GET', 'PUT' |
| loggingConfiguration | LoggingConfigurationBuilder |
Represents the logging configurations for API calls |
| proxyConfiguration | ProxyConfigurationBuilder |
Represents the proxy configurations for API calls |
| publicBearerTokenCredentials | PublicBearerTokenCredentials |
The Credentials Setter for OAuth 2 Bearer token |
| publicBasicTokenCredentials | PublicBasicTokenCredentials |
The Credentials Setter for Custom Header Signature |
| privateBasicTokenCredentials | PrivateBasicTokenCredentials |
The Credentials Setter for Custom Header Signature |
| clientAuthorizationTokenCredentials | ClientAuthorizationTokenCredentials |
The Credentials Setter for OAuth 2 Client Credentials Grant |
| customerHeaderCredentials | CustomerHeaderCredentials |
The Credentials Setter for Custom Header Signature |
The API client can be initialized as follows:
use LoyaltyApIsLib\Logging\LoggingConfigurationBuilder; use LoyaltyApIsLib\Logging\RequestLoggingConfigurationBuilder; use LoyaltyApIsLib\Logging\ResponseLoggingConfigurationBuilder; use Psr\Log\LogLevel; use LoyaltyApIsLib\Environment; use LoyaltyApIsLib\Authentication\PublicBearerTokenCredentialsBuilder; use LoyaltyApIsLib\Authentication\PublicBasicTokenCredentialsBuilder; use LoyaltyApIsLib\Authentication\PrivateBasicTokenCredentialsBuilder; use LoyaltyApIsLib\Authentication\ClientAuthorizationTokenCredentialsBuilder; use LoyaltyApIsLib\Authentication\CustomerHeaderCredentialsBuilder; use LoyaltyApIsLib\LoyaltyApIsClientBuilder; $client = LoyaltyApIsClientBuilder::init() ->publicBearerTokenCredentials( PublicBearerTokenCredentialsBuilder::init( 'AccessToken' ) ) ->publicBasicTokenCredentials( PublicBasicTokenCredentialsBuilder::init( 'Public Basic Token' ) ) ->privateBasicTokenCredentials( PrivateBasicTokenCredentialsBuilder::init( 'Public Basic Token' ) ) ->clientAuthorizationTokenCredentials( ClientAuthorizationTokenCredentialsBuilder::init( 'OAuthClientId', 'OAuthClientSecret' ) ) ->customerHeaderCredentials( CustomerHeaderCredentialsBuilder::init( 'Authorization-Token' ) ) ->environment(Environment::SIT) ->loggingConfiguration( LoggingConfigurationBuilder::init() ->level(LogLevel::INFO) ->requestConfiguration(RequestLoggingConfigurationBuilder::init()->body(true)) ->responseConfiguration(ResponseLoggingConfigurationBuilder::init()->headers(true)) ) ->build();
Environments
The SDK can be configured to use a different environment for making API calls. Available environments are:
Fields
| Name | Description |
|---|---|
| SIT | Default |
| PRODUCTION | - |
| UAT | - |
Authorization
This API uses the following authentication schemes.
PublicBearerToken (OAuth 2 Bearer token)PublicBasicToken (Custom Header Signature)PrivateBasicToken (Custom Header Signature)client-authorization-token (OAuth 2 Client Credentials Grant)customerHeader (Custom Header Signature)
List of APIs
SDK Infrastructure
Configuration
- ProxyConfigurationBuilder
- LoggingConfigurationBuilder
- RequestLoggingConfigurationBuilder
- ResponseLoggingConfigurationBuilder