// Copyright 2019 Campbell Crowley. All rights reserved. // Author: Campbell Crowley (dev@campbellcrowley.com) /** * @classdesc Data sent in an API endpoint request for being processed. * @class */ class ApiRequestBody { /** * @description Create an instance. */ constructor() { /** * @description Arguments to pass as function parameters. * @public * @type {Array.<*>} * @default */ this.args = []; /** * @description The name of the command to run. * @public * @type {string} * @default */ this.cmd = ''; /** * @description Current endpoint information. * @public * @type {?ApiEndpoint} * @default */ this.endpoint = null; } /** * @description Convert an api request body to appropriate format. * * @public * @static * @param {object} obj Received object of request data from client. * @param {string} cmd The command requested to be performed on the endpoint. * @returns {ApiRequestBody} Created object of data. */ static from(obj, cmd) { const out = new ApiRequestBody(); out.cmd = cmd || ''; if (Array.isArray(obj.args)) { out.args = obj.args.slice(0); } return out; } } module.exports = ApiRequestBody;