lightrail-client
Advanced tools
Comparing version 1.5.0 to 1.6.0
import { CapturePendingTransactionParams, CreateAccountCardParams, CreateTransactionParams, SimulateTransactionParams, VoidPendingTransactionParams } from "./params"; | ||
import { Card, Transaction } from "./model"; | ||
import { Card, ContactIdentifier, Transaction } from "./model"; | ||
/** | ||
@@ -7,26 +7,6 @@ * Creates a contact first if contact doesn't exist (if userSuppliedId or shopperId provided) | ||
*/ | ||
export declare function createAccount(contact: { | ||
contactId?: string; | ||
userSuppliedId?: string; | ||
shopperId?: string; | ||
}, params: CreateAccountCardParams): Promise<Card>; | ||
export declare function createTransaction(contact: { | ||
contactId?: string; | ||
userSuppliedId?: string; | ||
shopperId?: string; | ||
}, params: CreateTransactionParams): Promise<Transaction>; | ||
export declare function capturePendingTransaction(contact: { | ||
contactId?: string; | ||
userSuppliedId?: string; | ||
shopperId?: string; | ||
}, transaction: Transaction, params: CapturePendingTransactionParams): Promise<Transaction>; | ||
export declare function voidPendingTransaction(contact: { | ||
contactId?: string; | ||
userSuppliedId?: string; | ||
shopperId?: string; | ||
}, transaction: Transaction, params: VoidPendingTransactionParams): Promise<Transaction>; | ||
export declare function simulateTransaction(contact: { | ||
contactId?: string; | ||
userSuppliedId?: string; | ||
shopperId?: string; | ||
}, params: SimulateTransactionParams): Promise<Transaction>; | ||
export declare function createAccount(contact: ContactIdentifier, params: CreateAccountCardParams): Promise<Card>; | ||
export declare function createTransaction(contact: ContactIdentifier, params: CreateTransactionParams): Promise<Transaction>; | ||
export declare function capturePendingTransaction(contact: ContactIdentifier, transaction: Transaction, params: CapturePendingTransactionParams): Promise<Transaction>; | ||
export declare function voidPendingTransaction(contact: ContactIdentifier, transaction: Transaction, params: VoidPendingTransactionParams): Promise<Transaction>; | ||
export declare function simulateTransaction(contact: ContactIdentifier, params: SimulateTransactionParams): Promise<Transaction>; |
import * as accounts from "./accounts"; | ||
import { CreateContactParams, GetContactsParams, PaginationParams, UpdateContactParams } from "./params"; | ||
import { Contact, Pagination } from "./model"; | ||
import { Contact, ContactIdentifier, Pagination } from "./model"; | ||
export { accounts }; | ||
export declare function createContact(params: CreateContactParams): Promise<Contact>; | ||
export declare function getContactByAnyIdentifier(contact: { | ||
contactId?: string; | ||
userSuppliedId?: string; | ||
shopperId?: string; | ||
}): Promise<Contact>; | ||
export declare function getContactByAnyIdentifier(contact: ContactIdentifier): Promise<Contact>; | ||
export declare function getContacts(params?: GetContactsParams | PaginationParams): Promise<{ | ||
@@ -12,0 +8,0 @@ contacts: Contact[]; |
@@ -11,2 +11,3 @@ /// <reference types="superagent" /> | ||
import { LightrailRequestError } from "./LightrailRequestError"; | ||
import { GenerateShopperTokenOptions } from "./GenerateShopperTokenOptions"; | ||
export { LightrailOptions, LightrailRequestError, accounts, cards, contacts, model, params, programs }; | ||
@@ -31,11 +32,8 @@ /** | ||
* eg: `generateShopperToken({shopperId: "user-12345"});` | ||
* eg: `generateShopperToken({shopperId: "user-12345"}, {validityInSeconds: 43200});` | ||
* | ||
* @param contact an object that defines one of: contactId, userSuppliedId or shopperId | ||
* @param validityInSeconds the number of seconds the shopper token will be valid for | ||
* @param options the number of seconds the shopper token will be valid for *OR* a GenerateShopperTokenOptions object | ||
* @returns the shopper token | ||
*/ | ||
export declare function generateShopperToken(contact: { | ||
contactId?: string; | ||
userSuppliedId?: string; | ||
shopperId?: string; | ||
}, validityInSeconds?: number): string; | ||
export declare function generateShopperToken(contact: model.ContactIdentifier, options?: number | GenerateShopperTokenOptions): string; |
@@ -106,8 +106,9 @@ "use strict"; | ||
* eg: `generateShopperToken({shopperId: "user-12345"});` | ||
* eg: `generateShopperToken({shopperId: "user-12345"}, {validityInSeconds: 43200});` | ||
* | ||
* @param contact an object that defines one of: contactId, userSuppliedId or shopperId | ||
* @param validityInSeconds the number of seconds the shopper token will be valid for | ||
* @param options the number of seconds the shopper token will be valid for *OR* a GenerateShopperTokenOptions object | ||
* @returns the shopper token | ||
*/ | ||
function generateShopperToken(contact, validityInSeconds = 43200) { | ||
function generateShopperToken(contact, options) { | ||
if (!exports.configuration.apiKey) { | ||
@@ -119,8 +120,24 @@ throw new Error("apiKey not set"); | ||
} | ||
if (!contact) { | ||
throw new Error("contact not set"); | ||
} | ||
if (!contact.contactId && !contact.userSuppliedId && !contact.shopperId) { | ||
throw new Error("one of contact.contactId, contact.userSuppliedId or contact.shopperId must be set"); | ||
} | ||
if (typeof validityInSeconds !== "number" || validityInSeconds <= 0) { | ||
throw new Error("validityInSeconds must be a number > 0"); | ||
let validityInSeconds = 43200; | ||
let metadata; | ||
if (typeof options === "number") { | ||
validityInSeconds = options; | ||
} | ||
else if (options) { | ||
if (typeof options.validityInSeconds === "number") { | ||
validityInSeconds = options.validityInSeconds; | ||
} | ||
if (options.metadata) { | ||
metadata = options.metadata; | ||
} | ||
} | ||
if (validityInSeconds <= 0) { | ||
throw new Error("validityInSeconds must be > 0"); | ||
} | ||
const merchantJwtPayload = jsonwebtoken.decode(exports.configuration.apiKey); | ||
@@ -139,2 +156,3 @@ if (!merchantJwtPayload || !merchantJwtPayload.g || !merchantJwtPayload.g.gui) { | ||
}, | ||
metadata: metadata || undefined, | ||
iss: "MERCHANT", | ||
@@ -141,0 +159,0 @@ iat: nowInSeconds, |
export * from "./Card"; | ||
export * from "./CardDetails"; | ||
export * from "./Contact"; | ||
export * from "./ContactIdentifier"; | ||
export * from "./Fullcode"; | ||
@@ -5,0 +6,0 @@ export * from "./Pagination"; |
{ | ||
"name": "lightrail-client", | ||
"version": "1.5.0", | ||
"version": "1.6.0", | ||
"description": "A Javascript and Typescript client for Lightrail", | ||
@@ -36,12 +36,12 @@ "main": "dist/index.js", | ||
"@types/chai": "^4.0.6", | ||
"@types/chai-as-promised": "^7.1.0", | ||
"@types/jsonwebtoken": "^7.2.3", | ||
"@types/mocha": "^2.2.44", | ||
"@types/node": "^8.0.53", | ||
"@types/superagent": "^3.5.6", | ||
"@types/node": "^8.0.53", | ||
"@types/chai-as-promised": "^7.1.0", | ||
"chai": "^4.1.2", | ||
"mocha": "^4.0.1", | ||
"chai-as-promised": "^7.1.1", | ||
"dotenv": "^4.0.0", | ||
"mitm": "^1.3.3", | ||
"mocha": "^4.0.1", | ||
"rimraf": "^2.6.2", | ||
@@ -48,0 +48,0 @@ "ts-node": "^3.3.0", |
74809
85
1557