lightrail-client
Advanced tools
Comparing version 1.4.2 to 1.5.0
@@ -1,6 +0,3 @@ | ||
import { Card } from "./model/Card"; | ||
import { CreateAccountCardParams } from "./params/CreateAccountCardParams"; | ||
import { CreateTransactionParams } from "./params/CreateTransactionParams"; | ||
import { Transaction } from "./model/Transaction"; | ||
import { SimulateTransactionParams } from "./params/SimulateTransactionParams"; | ||
import { CapturePendingTransactionParams, CreateAccountCardParams, CreateTransactionParams, SimulateTransactionParams, VoidPendingTransactionParams } from "./params"; | ||
import { Card, Transaction } from "./model"; | ||
/** | ||
@@ -20,2 +17,12 @@ * Creates a contact first if contact doesn't exist (if userSuppliedId or shopperId provided) | ||
}, 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: { | ||
@@ -22,0 +29,0 @@ contactId?: string; |
@@ -13,3 +13,3 @@ "use strict"; | ||
const cards = require("./cards"); | ||
const Card_1 = require("./model/Card"); | ||
const model_1 = require("./model"); | ||
/** | ||
@@ -21,4 +21,4 @@ * Creates a contact first if contact doesn't exist (if userSuppliedId or shopperId provided) | ||
return __awaiter(this, void 0, void 0, function* () { | ||
let contactForAccountCreation = yield contacts.getContactByAnyIdentifier(contact); | ||
if (!contactForAccountCreation) { | ||
let contactId = yield getContactId(contact); | ||
if (!contactId) { | ||
if (contact.contactId) { | ||
@@ -28,12 +28,12 @@ throw new Error(`could not find contact with contactId ${contact.contactId}`); | ||
else if (contact.userSuppliedId || contact.shopperId) { | ||
contactForAccountCreation = yield contacts.createContact({ userSuppliedId: contact.userSuppliedId || contact.shopperId }); | ||
const contactForAccountCreation = yield contacts.createContact({ userSuppliedId: contact.userSuppliedId || contact.shopperId }); | ||
contactId = contactForAccountCreation.contactId; | ||
} | ||
} | ||
const accountCard = yield cards.getAccountCardByContactAndCurrency(contactForAccountCreation, params.currency); | ||
const accountCard = yield cards.getAccountCardByContactAndCurrency(contactId, params.currency); | ||
if (!accountCard) { | ||
if (params.contactId && (params.contactId !== contactForAccountCreation.contactId)) { | ||
if (params.contactId && (params.contactId !== contactId)) { | ||
throw new Error("Account creation error: you've specified two different contacts to attach this account to."); | ||
} | ||
params.contactId = contactForAccountCreation.contactId; | ||
return cards.createCard(Object.assign({}, params, { cardType: Card_1.Card.CardType.ACCOUNT_CARD })); | ||
return cards.createCard(Object.assign({}, params, { contactId: contactId, cardType: model_1.Card.CardType.ACCOUNT_CARD })); | ||
} | ||
@@ -46,7 +46,7 @@ return accountCard; | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const contactForTransaction = yield contacts.getContactByAnyIdentifier(contact); | ||
if (!contactForTransaction) { | ||
const contactId = yield getContactId(contact); | ||
if (!contactId) { | ||
throw new Error("could not find contact to transact against"); | ||
} | ||
const accountCard = yield cards.getAccountCardByContactAndCurrency(contactForTransaction, params.currency); | ||
const accountCard = yield cards.getAccountCardByContactAndCurrency(contactId, params.currency); | ||
if (!accountCard) { | ||
@@ -59,9 +59,37 @@ throw new Error("could not find account to transact against"); | ||
exports.createTransaction = createTransaction; | ||
function capturePendingTransaction(contact, transaction, params) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const contactId = yield getContactId(contact); | ||
if (!contactId) { | ||
throw new Error("could not find contact to transact against"); | ||
} | ||
const accountCard = yield cards.getAccountCardByContactAndCurrency(contactId, transaction.currency); | ||
if (!accountCard) { | ||
throw new Error("could not find account to transact against"); | ||
} | ||
return cards.transactions.capturePending(accountCard, transaction, params); | ||
}); | ||
} | ||
exports.capturePendingTransaction = capturePendingTransaction; | ||
function voidPendingTransaction(contact, transaction, params) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const contactId = yield getContactId(contact); | ||
if (!contactId) { | ||
throw new Error("could not find contact to transact against"); | ||
} | ||
const accountCard = yield cards.getAccountCardByContactAndCurrency(contactId, transaction.currency); | ||
if (!accountCard) { | ||
throw new Error("could not find account to transact against"); | ||
} | ||
return cards.transactions.voidPending(accountCard, transaction, params); | ||
}); | ||
} | ||
exports.voidPendingTransaction = voidPendingTransaction; | ||
function simulateTransaction(contact, params) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const contactForTransaction = yield contacts.getContactByAnyIdentifier(contact); | ||
if (!contactForTransaction) { | ||
throw new Error("could not find contact to simulate transacting against"); | ||
const contactId = yield getContactId(contact); | ||
if (!contactId) { | ||
throw new Error("could not find contact to transact against"); | ||
} | ||
const accountCard = yield cards.getAccountCardByContactAndCurrency(contactForTransaction, params.currency); | ||
const accountCard = yield cards.getAccountCardByContactAndCurrency(contactId, params.currency); | ||
if (!accountCard) { | ||
@@ -74,1 +102,10 @@ throw new Error("could not find account to simulate transacting against"); | ||
exports.simulateTransaction = simulateTransaction; | ||
function getContactId(contact) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
if (contact.contactId) { | ||
return contact.contactId; | ||
} | ||
const contactObject = yield contacts.getContactByAnyIdentifier(contact); | ||
return contactObject ? contactObject.contactId : null; | ||
}); | ||
} |
import * as transactions from "./cardTransactions"; | ||
import * as valueStores from "./valueStores"; | ||
import { CreateCardParams } from "./params/CreateCardParams"; | ||
import { Card } from "./model/Card"; | ||
import { Fullcode } from "./model/Fullcode"; | ||
import { UpdateCardParams } from "./params/UpdateCardParams"; | ||
import { GetCardsParams } from "./params/GetCardsParams"; | ||
import { PaginationParams } from "./params/PaginationParams"; | ||
import { Pagination } from "./model/Pagination"; | ||
import { Contact } from "./model/Contact"; | ||
import { Transaction } from "./model/Transaction"; | ||
import { CardDetails } from "./model/CardDetails"; | ||
import { Card, CardDetails, Contact, Fullcode, Pagination, Transaction } from "./model"; | ||
import { CreateCardParams, GetCardsParams, PaginationParams, UpdateCardParams } from "./params"; | ||
export { transactions, valueStores }; | ||
@@ -14,0 +6,0 @@ export declare function createCard(params: CreateCardParams): Promise<Card>; |
@@ -17,4 +17,4 @@ "use strict"; | ||
exports.valueStores = valueStores; | ||
const Card_1 = require("./model/Card"); | ||
const LightrailRequestError_1 = require("./LightrailRequestError"); | ||
const model_1 = require("./model"); | ||
function createCard(params) { | ||
@@ -49,3 +49,3 @@ return __awaiter(this, void 0, void 0, function* () { | ||
const contactId = contacts.getContactId(contact); | ||
const resp = yield getCards({ cardType: Card_1.Card.CardType.ACCOUNT_CARD, contactId, currency }); | ||
const resp = yield getCards({ cardType: model_1.Card.CardType.ACCOUNT_CARD, contactId, currency }); | ||
if (resp.cards.length > 0) { | ||
@@ -52,0 +52,0 @@ return resp.cards[0]; |
@@ -1,10 +0,3 @@ | ||
import { Card } from "./model/Card"; | ||
import { CreateTransactionParams } from "./params/CreateTransactionParams"; | ||
import { Transaction } from "./model/Transaction"; | ||
import { CapturePendingTransactionParams } from "./params/CapturePendingTransactionParams"; | ||
import { VoidPendingTransactionParams } from "./params/VoidPendingTransactionParams"; | ||
import { PaginationParams } from "./params/PaginationParams"; | ||
import { Pagination } from "./model/Pagination"; | ||
import { GetTransactionsParams } from "./params/GetTransactionsParams"; | ||
import { SimulateTransactionParams } from "./params/SimulateTransactionParams"; | ||
import { Card, Pagination, Transaction } from "./model"; | ||
import { CapturePendingTransactionParams, CreateTransactionParams, GetTransactionsParams, PaginationParams, SimulateTransactionParams, VoidPendingTransactionParams } from "./params"; | ||
export declare function createTransaction(card: string | Card, params: CreateTransactionParams): Promise<Transaction>; | ||
@@ -11,0 +4,0 @@ export declare function simulateTransaction(card: string | Card, params: SimulateTransactionParams): Promise<Transaction>; |
@@ -1,8 +0,3 @@ | ||
import { Transaction } from "./model/Transaction"; | ||
import { CreateTransactionParams } from "./params/CreateTransactionParams"; | ||
import { GetTransactionsParams } from "./params/GetTransactionsParams"; | ||
import { PaginationParams } from "./params/PaginationParams"; | ||
import { Pagination } from "./model/Pagination"; | ||
import { CapturePendingTransactionParams } from "./params/CapturePendingTransactionParams"; | ||
import { VoidPendingTransactionParams } from "./params/VoidPendingTransactionParams"; | ||
import { CapturePendingTransactionParams, CreateTransactionParams, GetTransactionsParams, PaginationParams, VoidPendingTransactionParams } from "./params"; | ||
import { Pagination, Transaction } from "./model"; | ||
export declare function createTransaction(fullcode: string, pin: string, params: CreateTransactionParams): Promise<Transaction>; | ||
@@ -9,0 +4,0 @@ export declare function getTransaction(fullcode: string, pin: string, transaction: string | Transaction): Promise<Transaction>; |
@@ -1,8 +0,4 @@ | ||
import { Pagination } from "./model/Pagination"; | ||
import { GetContactsParams } from "./params/GetContactsParams"; | ||
import { PaginationParams } from "./params/PaginationParams"; | ||
import { Contact } from "./model/Contact"; | ||
import { UpdateContactParams } from "./params/UpdateContactParams"; | ||
import { CreateContactParams } from "./params/CreateContactParams"; | ||
import * as accounts from "./accounts"; | ||
import { CreateContactParams, GetContactsParams, PaginationParams, UpdateContactParams } from "./params"; | ||
import { Contact, Pagination } from "./model"; | ||
export { accounts }; | ||
@@ -9,0 +5,0 @@ export declare function createContact(params: CreateContactParams): Promise<Contact>; |
@@ -12,5 +12,5 @@ "use strict"; | ||
const lightrail = require("./"); | ||
const LightrailRequestError_1 = require("./LightrailRequestError"); | ||
const accounts = require("./accounts"); | ||
exports.accounts = accounts; | ||
const LightrailRequestError_1 = require("./LightrailRequestError"); | ||
function createContact(params) { | ||
@@ -17,0 +17,0 @@ return __awaiter(this, void 0, void 0, function* () { |
@@ -20,2 +20,5 @@ /// <reference types="superagent" /> | ||
export declare function configure(options: Partial<LightrailOptions>): void; | ||
/** | ||
* Initiate a new request to the Lightrail server. | ||
*/ | ||
export declare function request(method: string, path: string): superagent.Request; | ||
@@ -22,0 +25,0 @@ /** |
@@ -18,2 +18,3 @@ "use strict"; | ||
exports.programs = programs; | ||
const packageJson = require("../package.json"); | ||
const LightrailRequestError_1 = require("./LightrailRequestError"); | ||
@@ -76,2 +77,5 @@ exports.LightrailRequestError = LightrailRequestError_1.LightrailRequestError; | ||
exports.configure = configure; | ||
/** | ||
* Initiate a new request to the Lightrail server. | ||
*/ | ||
function request(method, path) { | ||
@@ -85,2 +89,3 @@ if (!exports.configuration.apiKey) { | ||
.set("Authorization", `Bearer ${exports.configuration.apiKey}`) | ||
.set("User-Agent", `Lightrail-JavaScript/${packageJson.version}`) | ||
.ok(() => true); | ||
@@ -87,0 +92,0 @@ for (const key in exports.configuration.additionalHeaders) { |
@@ -14,3 +14,3 @@ /** | ||
/** | ||
* The shared secret as set in the web app. | ||
* The shared secret as available from the web app. | ||
*/ | ||
@@ -17,0 +17,0 @@ sharedSecret: string; |
@@ -9,3 +9,5 @@ export interface Card { | ||
categories: { | ||
[id: string]: string; | ||
categoryId: string; | ||
key: string; | ||
value: string; | ||
}[]; | ||
@@ -12,0 +14,0 @@ } |
@@ -5,3 +5,3 @@ import { Card } from "./Card"; | ||
currency: string; | ||
cardtype: Card.CardType; | ||
cardType: Card.CardType; | ||
asAtDate: string; | ||
@@ -8,0 +8,0 @@ cardId: string; |
export interface Pagination { | ||
pagination: number; | ||
count: number; | ||
offset: number; | ||
@@ -4,0 +4,0 @@ limit: number; |
import { ValueStore } from "./ValueStore"; | ||
import { Card } from "./Card"; | ||
export interface Program { | ||
@@ -22,3 +23,3 @@ programId: string; | ||
timeZone: string; | ||
cardType: string; | ||
cardType: Card.CardType; | ||
} | ||
@@ -25,0 +26,0 @@ export declare namespace Program { |
@@ -1,5 +0,6 @@ | ||
import { Card } from "../model/Card"; | ||
import { Card } from "../model"; | ||
export interface CreateCardParams { | ||
userSuppliedId: string; | ||
cardType: Card.CardType; | ||
programId?: string; | ||
currency?: string; | ||
@@ -17,3 +18,2 @@ initialValue?: number; | ||
}; | ||
programId?: string; | ||
} |
@@ -1,2 +0,2 @@ | ||
import { Card } from "../model/Card"; | ||
import { Card } from "../model"; | ||
export interface GetCardsParams { | ||
@@ -3,0 +3,0 @@ contactId?: string; |
@@ -1,4 +0,2 @@ | ||
import { Card } from "../model/Card"; | ||
import { Program } from "../model/Program"; | ||
import { ValueStore } from "../model/ValueStore"; | ||
import { Card, Program, ValueStore } from "../model"; | ||
export interface GetProgramParams { | ||
@@ -5,0 +3,0 @@ name?: string; |
@@ -1,2 +0,2 @@ | ||
import { Transaction } from "../model/Transaction"; | ||
import { Transaction } from "../model"; | ||
export interface GetTransactionsParams { | ||
@@ -3,0 +3,0 @@ userSuppliedId?: string; |
@@ -1,5 +0,6 @@ | ||
import { GetProgramParams } from "./params/GetProgramParams"; | ||
import { PaginationParams } from "./params/PaginationParams"; | ||
import { Program } from "./model/Program"; | ||
import { Pagination } from "./model/Pagination"; | ||
import { Pagination, Program } from "./model"; | ||
import { GetProgramParams, PaginationParams } from "./params"; | ||
import { CreateProgramParams } from "./params/CreateProgramParams"; | ||
export declare function createProgram(params: CreateProgramParams): Promise<Program>; | ||
export declare function getProgramById(programId: string): Promise<Program>; | ||
export declare function getPrograms(params: GetProgramParams | PaginationParams): Promise<{ | ||
@@ -6,0 +7,0 @@ programs: Program[]; |
@@ -13,2 +13,31 @@ "use strict"; | ||
const LightrailRequestError_1 = require("./LightrailRequestError"); | ||
function createProgram(params) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
if (!params) { | ||
throw new Error("params not set"); | ||
} | ||
else if (!params.userSuppliedId) { | ||
throw new Error("params.userSuppliedId not set"); | ||
} | ||
const resp = yield lightrail.request("POST", "programs").send(params); | ||
if (resp.status === 200) { | ||
return resp.body.program; | ||
} | ||
throw new LightrailRequestError_1.LightrailRequestError(resp); | ||
}); | ||
} | ||
exports.createProgram = createProgram; | ||
function getProgramById(programId) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const resp = yield lightrail.request("GET", `programs/${encodeURIComponent(programId)}`); | ||
if (resp.status === 200) { | ||
return resp.body.program; | ||
} | ||
else if (resp.status === 404) { | ||
return null; | ||
} | ||
throw new LightrailRequestError_1.LightrailRequestError(resp); | ||
}); | ||
} | ||
exports.getProgramById = getProgramById; | ||
function getPrograms(params) { | ||
@@ -15,0 +44,0 @@ return __awaiter(this, void 0, void 0, function* () { |
@@ -1,7 +0,3 @@ | ||
import { Card } from "./model/Card"; | ||
import { CreateValueStoreParams } from "./params/CreateValueStoreParams"; | ||
import { ValueStore } from "./model/ValueStore"; | ||
import { GetValueStoresParams } from "./params/GetValueStoresParams"; | ||
import { PaginationParams } from "./params/PaginationParams"; | ||
import { Pagination } from "./model/Pagination"; | ||
import { Card, Pagination, ValueStore } from "./model"; | ||
import { CreateValueStoreParams, GetValueStoresParams, PaginationParams } from "./params"; | ||
export declare function createValueStore(card: string | Card, params: CreateValueStoreParams): Promise<ValueStore>; | ||
@@ -8,0 +4,0 @@ export declare function getValueStores(card: string | Card, params: GetValueStoresParams | PaginationParams): Promise<{ |
{ | ||
"name": "lightrail-client", | ||
"version": "1.4.2", | ||
"version": "1.5.0", | ||
"description": "A Javascript and Typescript client for Lightrail", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -1,4 +0,4 @@ | ||
# Lightrail Client Library | ||
# Lightrail Client for JavaScript and TypeScript | ||
Lightrail is a modern platform for digital account credits, gift cards, promotions, and points (to learn more, visit [Lightrail](https://www.lightrail.com/)). Lightrail Client Library is a basic library for developers to easily connect with the Lightrail API using Javascript or Typescript. If you are looking for specific use cases or other languages, check out the complete list of all [Lightrail libraries and integrations](https://github.com/Giftbit/Lightrail-API-Docs/blob/master/README.md#lightrail-integrations). | ||
Lightrail is a modern platform for digital account credits, gift cards, promotions, and points (to learn more, visit [Lightrail](https://www.lightrail.com/)). This is a basic library for developers to easily connect with the Lightrail API using Javascript or Typescript. If you are looking for specific use cases or other languages, check out the complete list of all [Lightrail libraries and integrations](https://github.com/Giftbit/Lightrail-API-Docs/blob/master/README.md#lightrail-integrations). | ||
@@ -271,2 +271,2 @@ | ||
This library is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT). | ||
This library is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT). |
73716
81
1537
272