UNPKG

lightrail-client

Version:
200 lines (199 loc) 7.53 kB
"use strict"; 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;