lightrail-client
Version:
A Javascript and Typescript client for Lightrail
200 lines (199 loc) • 7.53 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getValueId = exports.listValuesAttachedContacts = exports.listValuesTransactions = exports.deleteValue = exports.changeValuesCode = exports.updateValue = exports.getValue = exports.listValues = exports.createValue = void 0;
const requestUtils_1 = require("./requestUtils");
const LightrailRequestError_1 = require("./LightrailRequestError");
const lightrail = require("./index");
/**
* See: https://apidocs.lightrail.com/#operation/CreateValue
*
* Example:
* ```js
* const value = await Lightrail.values.createValue({
* id: "abcdefg",
* currency: "USD",
* balance: 500
* });
* const valueWithGeneratedCode = await Lightrail.values.createValue({
* id: "hijklmnop",
* currency: "USD",
* balance: 500,
* generateCode: {}
* }, {codeCode: true});
* ```
*/
function createValue(params, queryParams) {
return __awaiter(this, void 0, void 0, function* () {
if (!params) {
throw new Error("params not set");
}
else {
requestUtils_1.validateRequiredParams(["id", "currency"], params);
}
const resp = yield lightrail.request("POST", "values").send(params).query(queryParams);
if (requestUtils_1.isSuccessStatus(resp.status)) {
return requestUtils_1.formatResponse(resp);
}
throw new LightrailRequestError_1.LightrailRequestError(resp);
});
}
exports.createValue = createValue;
/**
* See: https://apidocs.lightrail.com/#operation/ListValues
*
* Example:
* ```js
* const values = await Lightrail.values.listValues();
* const valuesLimited = await Lightrail.values.listValues({limit: 5});
* ```
*/
function listValues(params, contentType = "application/json") {
return __awaiter(this, void 0, void 0, function* () {
const resp = yield lightrail.request("GET", "values").set("accept", contentType).query(requestUtils_1.formatFilterParams(params));
if (requestUtils_1.isSuccessStatus(resp.status)) {
return requestUtils_1.formatResponse(resp);
}
throw new LightrailRequestError_1.LightrailRequestError(resp);
});
}
exports.listValues = listValues;
/**
* See: https://apidocs.lightrail.com/#operation/GetValue
*
* Example:
* ```js
* const value = await Lightrail.values.getValue("abcdefg");
* ```
*/
function getValue(value, params) {
return __awaiter(this, void 0, void 0, function* () {
const valueId = getValueId(value);
const resp = yield lightrail.request("GET", `values/${encodeURIComponent(valueId)}`).query(params);
if (requestUtils_1.isSuccessStatus(resp.status) || resp.status === 404) {
return requestUtils_1.formatResponse(resp);
}
throw new LightrailRequestError_1.LightrailRequestError(resp);
});
}
exports.getValue = getValue;
/**
* See: https://apidocs.lightrail.com/#operation/UpdateValue
*
* Example:
* ```js
* const updatedValue = await Lightrail.values.updateValue("abcdefg", {frozen: true});
* ```
*/
function updateValue(value, params) {
return __awaiter(this, void 0, void 0, function* () {
const valueId = getValueId(value);
const resp = yield lightrail.request("PATCH", `values/${encodeURIComponent(valueId)}`).send(params);
if (requestUtils_1.isSuccessStatus(resp.status)) {
return requestUtils_1.formatResponse(resp);
}
throw new LightrailRequestError_1.LightrailRequestError(resp);
});
}
exports.updateValue = updateValue;
/**
* See: https://apidocs.lightrail.com/#operation/ChangeValueCode
*
* Example:
* ```js
* const updatedValue = await Lightrail.values.changeValuesCode("abcdefg", {code: "PROMOCODE"});
* ```
*/
function changeValuesCode(value, params) {
return __awaiter(this, void 0, void 0, function* () {
const valueId = getValueId(value);
const resp = yield lightrail.request("POST", `values/${encodeURIComponent(valueId)}/changeCode`).send(params);
if (requestUtils_1.isSuccessStatus(resp.status)) {
return requestUtils_1.formatResponse(resp);
}
throw new LightrailRequestError_1.LightrailRequestError(resp);
});
}
exports.changeValuesCode = changeValuesCode;
/**
* Example:
* ```js
* await Lightrail.values.deleteValue("abcdefg");
* ```
*/
function deleteValue(value) {
return __awaiter(this, void 0, void 0, function* () {
const valueId = getValueId(value);
const resp = yield lightrail.request("DELETE", `values/${encodeURIComponent(valueId)}`);
if (requestUtils_1.isSuccessStatus(resp.status) || resp.status === 404) {
return requestUtils_1.formatResponse(resp);
}
throw new LightrailRequestError_1.LightrailRequestError(resp);
});
}
exports.deleteValue = deleteValue;
/**
* See: https://apidocs.lightrail.com/#operation/ListValueTransactions
*
* Example:
* ```js
* const transactions = await Lightrail.values.listValuesTransactions("abcdefg");
* ```
*/
function listValuesTransactions(value, params) {
return __awaiter(this, void 0, void 0, function* () {
const valueId = getValueId(value);
const resp = yield lightrail.request("GET", `values/${encodeURIComponent(valueId)}/transactions`).query(requestUtils_1.formatFilterParams(params));
if (requestUtils_1.isSuccessStatus(resp.status)) {
return requestUtils_1.formatResponse(resp);
}
throw new LightrailRequestError_1.LightrailRequestError(resp);
});
}
exports.listValuesTransactions = listValuesTransactions;
/**
* See: https://apidocs.lightrail.com/#operation/ListValueAttachedContacts
*
* Example:
* ```js
* const contacts = await Lightrail.values.listValuesAttachedContacts("abcdefg");
* ```
*/
function listValuesAttachedContacts(value, params) {
return __awaiter(this, void 0, void 0, function* () {
const valueId = getValueId(value);
const resp = yield lightrail.request("GET", `values/${encodeURIComponent(valueId)}/contacts`).query(requestUtils_1.formatFilterParams(params));
if (requestUtils_1.isSuccessStatus(resp.status)) {
return requestUtils_1.formatResponse(resp);
}
throw new LightrailRequestError_1.LightrailRequestError(resp);
});
}
exports.listValuesAttachedContacts = listValuesAttachedContacts;
/**
* @internal
* Get contactId from the string (as the ID itself) or Contact object.
*/
function getValueId(value) {
if (!value) {
throw new Error("value not set");
}
else if (typeof value === "string") {
return value;
}
else if (value.id) {
return value.id;
}
else {
throw new Error("value must be a string for valueId or a Value object");
}
}
exports.getValueId = getValueId;