UNPKG

@kwikpik/kwikpik.js

Version:

Javascript/Typescript convenience library that interfaces with the Kwik Pik business API

97 lines (96 loc) 4.46 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Requests = void 0; var assert_1 = __importDefault(require("assert")); var https_1 = require("../https"); var lodash_1 = require("lodash"); var requests_1 = require("../schemas/requests"); var config_json_1 = __importDefault(require("../config.json")); var Requests = /** @class */ (function () { function Requests(apiKey, environment) { if (environment === void 0) { environment = "prod"; } this.agent = new https_1.KwikPikHTTPsAgent(apiKey, environment); } /** * * @param apiKey Your Kwik-Pik API key * @param environment dev or prod (development or production) * @description Intializes a request object * @returns */ Requests.initialize = function (apiKey, environment) { return new Requests(apiKey, environment); }; /** * * @param requests A single request * @returns * @description Initializes new dispatch requests but does not broadcast them. */ Requests.prototype.createDispatchRequest = function (request) { var error = requests_1.initRequestSchema.validate(request).error; if (!(0, lodash_1.isNil)(error)) { var messages = error.details.map(function (e) { return e.message; }); throw new Error(JSON.stringify(messages, undefined, 2)); } if ((0, lodash_1.isNil)(request.quantity)) (0, lodash_1.assign)(request, { quantity: 1 }); if ((0, lodash_1.isNil)(request.description)) (0, lodash_1.assign)(request, { description: "no description" }); if ((0, lodash_1.isNil)(request.image)) (0, lodash_1.assign)(request, { image: "" }); return this.agent.createKwikPikSendableInstance(config_json_1.default.paths.requests.initialize_request, "post", request); }; /** * * @param requestId ID of initialized request * @returns * @description Confirms initialized dispatch requests after user has paid from their wallet. Throws an error for a request that wasn't paid for */ Requests.prototype.confirmDispatchRequest = function (requestId) { assert_1.default.ok(typeof requestId === "string", "Require string but found ".concat(typeof requestId)); return this.agent.createKwikPikSendableInstance(config_json_1.default.paths.requests.confirm_request, "post", { requestId: requestId }); }; /** * * @param requestId The request ID * @description Retrieves a single request using its ID * @returns */ Requests.prototype.getSingleRequest = function (requestId) { assert_1.default.ok(typeof requestId === "string", "'requestId' must be a string"); var path = (0, lodash_1.replace)(config_json_1.default.paths.requests.get_single_request, ":id", requestId); return this.agent.createKwikPikCallableInstance(path, "get"); }; /** * * @param requestId The ID of the request to delete * @description Deletes a request. Throws an error if the utilizer is attempting to delete a request they did not create or a request that has already been confirmed. * @returns */ Requests.prototype.deleteRequest = function (requestId) { assert_1.default.ok(typeof requestId === "string", "'requestId' must be a string"); return this.agent.createKwikPikSendableInstance(config_json_1.default.paths.requests.delete_single_request, "delete", { requestId: requestId }); }; /** * * @param requestId ID of the request you want to update * @param body Parameters for the request * @description Update a request. Must be an unconfirmed request * @returns */ Requests.prototype.updateRequest = function (requestId, body) { var error = requests_1.updateRequestSchema.validate(body).error; if (error) { var messages = error.details.map(function (e) { return e.message; }); throw new Error(JSON.stringify(messages, undefined, 2)); } var path = (0, lodash_1.replace)(config_json_1.default.paths.requests.update_single_request, ":id", requestId); return this.agent.createKwikPikSendableInstance(path, "patch", body); }; return Requests; }()); exports.Requests = Requests;