@itentialopensource/adapter-solarwinds_servicedesk
Version:
This adapter integrates with system described as: solarwindsServiceDeskApi.
14,133 lines • 627 kB
JavaScript
/* @copyright Itential, LLC 2019 (pre-modifications) */
/* eslint import/no-dynamic-require: warn */
/* eslint object-curly-newline: warn */
// Set globals
/* global log */
/* Required libraries. */
const path = require('path');
/* Fetch in the other needed components for the this Adaptor */
const AdapterBaseCl = require(path.join(__dirname, 'adapterBase.js'));
/**
* This is the adapter/interface into SolarwindsServiceDesk
*/
/* GENERAL ADAPTER FUNCTIONS */
class SolarwindsServiceDesk extends AdapterBaseCl {
/**
* SolarwindsServiceDesk Adapter
* @constructor
*/
/* Working on changing the way we do Emit methods due to size and time constrainsts
constructor(prongid, properties) {
// Instantiate the AdapterBase super class
super(prongid, properties);
const restFunctionNames = this.getWorkflowFunctions();
// Dynamically bind emit functions
for (let i = 0; i < restFunctionNames.length; i += 1) {
// Bind function to have name fnNameEmit for fnName
const version = restFunctionNames[i].match(/__v[0-9]+/);
const baseFnName = restFunctionNames[i].replace(/__v[0-9]+/, '');
const fnNameEmit = version ? `${baseFnName}Emit${version}` : `${baseFnName}Emit`;
this[fnNameEmit] = function (...args) {
// extract the callback
const callback = args[args.length - 1];
// slice the callback from args so we can insert our own
const functionArgs = args.slice(0, args.length - 1);
// create a random name for the listener
const eventName = `${restFunctionNames[i]}:${Math.random().toString(36)}`;
// tell the calling class to start listening
callback({ event: eventName, status: 'received' });
// store parent for use of this context later
const parent = this;
// store emission function
const func = function (val, err) {
parent.removeListener(eventName, func);
parent.emit(eventName, val, err);
};
// Use apply to call the function in a specific context
this[restFunctionNames[i]].apply(this, functionArgs.concat([func])); // eslint-disable-line prefer-spread
};
}
// Uncomment if you have things to add to the constructor like using your own properties.
// Otherwise the constructor in the adapterBase will be used.
// Capture my own properties - they need to be defined in propertiesSchema.json
// if (this.allProps && this.allProps.myownproperty) {
// mypropvariable = this.allProps.myownproperty;
// }
}
*/
/**
* @callback healthCallback
* @param {Object} reqObj - the request to send into the healthcheck
* @param {Callback} callback - The results of the call
*/
healthCheck(reqObj, callback) {
// you can modify what is passed into the healthcheck by changing things in the newReq
let newReq = null;
if (reqObj) {
newReq = Object.assign(...reqObj);
}
super.healthCheck(newReq, callback);
}
/**
* @iapGetAdapterWorkflowFunctions
*/
iapGetAdapterWorkflowFunctions(inIgnore) {
let myIgnore = [
'healthCheck',
'iapGetAdapterWorkflowFunctions',
'hasEntities',
'getAuthorization'
];
if (!inIgnore && Array.isArray(inIgnore)) {
myIgnore = inIgnore;
} else if (!inIgnore && typeof inIgnore === 'string') {
myIgnore = [inIgnore];
}
// The generic adapter functions should already be ignored (e.g. healthCheck)
// you can add specific methods that you do not want to be workflow functions to ignore like below
// myIgnore.push('myMethodNotInWorkflow');
return super.iapGetAdapterWorkflowFunctions(myIgnore);
}
/**
* iapUpdateAdapterConfiguration is used to update any of the adapter configuration files. This
* allows customers to make changes to adapter configuration without having to be on the
* file system.
*
* @function iapUpdateAdapterConfiguration
* @param {string} configFile - the name of the file being updated (required)
* @param {Object} changes - an object containing all of the changes = formatted like the configuration file (required)
* @param {string} entity - the entity to be changed, if an action, schema or mock data file (optional)
* @param {string} type - the type of entity file to change, (action, schema, mock) (optional)
* @param {string} action - the action to be changed, if an action, schema or mock data file (optional)
* @param {boolean} replace - true to replace entire mock data, false to merge/append
* @param {Callback} callback - The results of the call
*/
iapUpdateAdapterConfiguration(configFile, changes, entity, type, action, replace, callback) {
const meth = 'adapter-iapUpdateAdapterConfiguration';
const origin = `${this.id}-${meth}`;
log.trace(origin);
super.iapUpdateAdapterConfiguration(configFile, changes, entity, type, action, replace, callback);
}
/**
* @summary Suspends adapter
*
* @function iapSuspendAdapter
* @param {Callback} callback - callback function
*/
iapSuspendAdapter(mode, callback) {
const meth = 'adapter-iapSuspendAdapter';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.iapSuspendAdapter(mode, callback);
} catch (error) {
log.error(`${origin}: ${error}`);
return callback(null, error);
}
}
/**
* @summary Unsuspends adapter
*
* @function iapUnsuspendAdapter
* @param {Callback} callback - callback function
*/
iapUnsuspendAdapter(callback) {
const meth = 'adapter-iapUnsuspendAdapter';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.iapUnsuspendAdapter(callback);
} catch (error) {
log.error(`${origin}: ${error}`);
return callback(null, error);
}
}
/**
* @summary Get the Adapter Queue
*
* @function iapGetAdapterQueue
* @param {Callback} callback - callback function
*/
iapGetAdapterQueue(callback) {
const meth = 'adapter-iapGetAdapterQueue';
const origin = `${this.id}-${meth}`;
log.trace(origin);
return super.iapGetAdapterQueue(callback);
}
/* SCRIPT CALLS */
/**
* See if the API path provided is found in this adapter
*
* @function iapFindAdapterPath
* @param {string} apiPath - the api path to check on
* @param {Callback} callback - The results of the call
*/
iapFindAdapterPath(apiPath, callback) {
const meth = 'adapter-iapFindAdapterPath';
const origin = `${this.id}-${meth}`;
log.trace(origin);
super.iapFindAdapterPath(apiPath, callback);
}
/**
* @summary Runs troubleshoot scripts for adapter
*
* @function iapTroubleshootAdapter
* @param {Object} props - the connection, healthcheck and authentication properties
*
* @param {Callback} callback - The results of the call
*/
iapTroubleshootAdapter(props, callback) {
const meth = 'adapter-iapTroubleshootAdapter';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.iapTroubleshootAdapter(props, this, callback);
} catch (error) {
log.error(`${origin}: ${error}`);
return callback(null, error);
}
}
/**
* @summary runs healthcheck script for adapter
*
* @function iapRunAdapterHealthcheck
* @param {Adapter} adapter - adapter instance to troubleshoot
* @param {Callback} callback - callback function
*/
iapRunAdapterHealthcheck(callback) {
const meth = 'adapter-iapRunAdapterHealthcheck';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.iapRunAdapterHealthcheck(this, callback);
} catch (error) {
log.error(`${origin}: ${error}`);
return callback(null, error);
}
}
/**
* @summary runs connectivity check script for adapter
*
* @function iapRunAdapterConnectivity
* @param {Callback} callback - callback function
*/
iapRunAdapterConnectivity(callback) {
const meth = 'adapter-iapRunAdapterConnectivity';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.iapRunAdapterConnectivity(callback);
} catch (error) {
log.error(`${origin}: ${error}`);
return callback(null, error);
}
}
/**
* @summary runs basicGet script for adapter
*
* @function iapRunAdapterBasicGet
* @param {number} maxCalls - how many GET endpoints to test (optional)
* @param {Callback} callback - callback function
*/
iapRunAdapterBasicGet(maxCalls, callback) {
const meth = 'adapter-iapRunAdapterBasicGet';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.iapRunAdapterBasicGet(maxCalls, callback);
} catch (error) {
log.error(`${origin}: ${error}`);
return callback(null, error);
}
}
/**
* @summary moves entites into Mongo DB
*
* @function iapMoveAdapterEntitiesToDB
* @param {getCallback} callback - a callback function to return the result (Generics)
* or the error
*/
iapMoveAdapterEntitiesToDB(callback) {
const meth = 'adapter-iapMoveAdapterEntitiesToDB';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.iapMoveAdapterEntitiesToDB(callback);
} catch (err) {
log.error(`${origin}: ${err}`);
return callback(null, err);
}
}
/**
* @summary Deactivate adapter tasks
*
* @function iapDeactivateTasks
*
* @param {Array} tasks - List of tasks to deactivate
* @param {Callback} callback
*/
iapDeactivateTasks(tasks, callback) {
const meth = 'adapter-iapDeactivateTasks';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.iapDeactivateTasks(tasks, callback);
} catch (err) {
log.error(`${origin}: ${err}`);
return callback(null, err);
}
}
/**
* @summary Activate adapter tasks that have previously been deactivated
*
* @function iapActivateTasks
*
* @param {Array} tasks - List of tasks to activate
* @param {Callback} callback
*/
iapActivateTasks(tasks, callback) {
const meth = 'adapter-iapActivateTasks';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.iapActivateTasks(tasks, callback);
} catch (err) {
log.error(`${origin}: ${err}`);
return callback(null, err);
}
}
/* CACHE CALLS */
/**
* @summary Populate the cache for the given entities
*
* @function iapPopulateEntityCache
* @param {String/Array of Strings} entityType - the entity type(s) to populate
* @param {Callback} callback - whether the cache was updated or not for each entity type
*
* @returns status of the populate
*/
iapPopulateEntityCache(entityTypes, callback) {
const meth = 'adapter-iapPopulateEntityCache';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.iapPopulateEntityCache(entityTypes, callback);
} catch (err) {
log.error(`${origin}: ${err}`);
return callback(null, err);
}
}
/**
* @summary Retrieves data from cache for specified entity type
*
* @function iapRetrieveEntitiesCache
* @param {String} entityType - entity of which to retrieve
* @param {Object} options - settings of which data to return and how to return it
* @param {Callback} callback - the data if it was retrieved
*/
iapRetrieveEntitiesCache(entityType, options, callback) {
const meth = 'adapter-iapCheckEiapRetrieveEntitiesCachentityCached';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.iapRetrieveEntitiesCache(entityType, options, callback);
} catch (err) {
log.error(`${origin}: ${err}`);
return callback(null, err);
}
}
/* BROKER CALLS */
/**
* @summary Determines if this adapter supports any in a list of entities
*
* @function hasEntities
* @param {String} entityType - the entity type to check for
* @param {Array} entityList - the list of entities we are looking for
*
* @param {Callback} callback - A map where the entity is the key and the
* value is true or false
*/
hasEntities(entityType, entityList, callback) {
const meth = 'adapter-hasEntities';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.hasEntities(entityType, entityList, callback);
} catch (err) {
log.error(`${origin}: ${err}`);
return callback(null, err);
}
}
/**
* @summary Get Appliance that match the deviceName
*
* @function getDevice
* @param {String} deviceName - the deviceName to find (required)
*
* @param {getCallback} callback - a callback function to return the result
* (appliance) or the error
*/
getDevice(deviceName, callback) {
const meth = 'adapter-getDevice';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.getDevice(deviceName, callback);
} catch (err) {
log.error(`${origin}: ${err}`);
return callback(null, err);
}
}
/**
* @summary Get Appliances that match the filter
*
* @function getDevicesFiltered
* @param {Object} options - the data to use to filter the appliances (optional)
*
* @param {getCallback} callback - a callback function to return the result
* (appliances) or the error
*/
getDevicesFiltered(options, callback) {
const meth = 'adapter-getDevicesFiltered';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.getDevicesFiltered(options, callback);
} catch (err) {
log.error(`${origin}: ${err}`);
return callback(null, err);
}
}
/**
* @summary Gets the status for the provided appliance
*
* @function isAlive
* @param {String} deviceName - the deviceName of the appliance. (required)
*
* @param {configCallback} callback - callback function to return the result
* (appliance isAlive) or the error
*/
isAlive(deviceName, callback) {
const meth = 'adapter-isAlive';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.isAlive(deviceName, callback);
} catch (err) {
log.error(`${origin}: ${err}`);
return callback(null, err);
}
}
/**
* @summary Gets a config for the provided Appliance
*
* @function getConfig
* @param {String} deviceName - the deviceName of the appliance. (required)
* @param {String} format - the desired format of the config. (optional)
*
* @param {configCallback} callback - callback function to return the result
* (appliance config) or the error
*/
getConfig(deviceName, format, callback) {
const meth = 'adapter-getConfig';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.getConfig(deviceName, format, callback);
} catch (err) {
log.error(`${origin}: ${err}`);
return callback(null, err);
}
}
/**
* @summary Gets the device count from the system
*
* @function iapGetDeviceCount
*
* @param {getCallback} callback - callback function to return the result
* (count) or the error
*/
iapGetDeviceCount(callback) {
const meth = 'adapter-iapGetDeviceCount';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.iapGetDeviceCount(callback);
} catch (err) {
log.error(`${origin}: ${err}`);
return callback(null, err);
}
}
/* GENERIC ADAPTER REQUEST - allows extension of adapter without new calls being added */
/**
* Makes the requested generic call
*
* @function iapExpandedGenericAdapterRequest
* @param {Object} metadata - metadata for the call (optional).
* Can be a stringified Object.
* @param {String} uriPath - the path of the api call - do not include the host, port, base path or version (optional)
* @param {String} restMethod - the rest method (GET, POST, PUT, PATCH, DELETE) (optional)
* @param {Object} pathVars - the parameters to be put within the url path (optional).
* Can be a stringified Object.
* @param {Object} queryData - the parameters to be put on the url (optional).
* Can be a stringified Object.
* @param {Object} requestBody - the body to add to the request (optional).
* Can be a stringified Object.
* @param {Object} addlHeaders - additional headers to be put on the call (optional).
* Can be a stringified Object.
* @param {getCallback} callback - a callback function to return the result (Generics)
* or the error
*/
iapExpandedGenericAdapterRequest(metadata, uriPath, restMethod, pathVars, queryData, requestBody, addlHeaders, callback) {
const meth = 'adapter-iapExpandedGenericAdapterRequest';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.iapExpandedGenericAdapterRequest(metadata, uriPath, restMethod, pathVars, queryData, requestBody, addlHeaders, callback);
} catch (err) {
log.error(`${origin}: ${err}`);
return callback(null, err);
}
}
/**
* Makes the requested generic call
*
* @function genericAdapterRequest
* @param {String} uriPath - the path of the api call - do not include the host, port, base path or version (required)
* @param {String} restMethod - the rest method (GET, POST, PUT, PATCH, DELETE) (required)
* @param {Object} queryData - the parameters to be put on the url (optional).
* Can be a stringified Object.
* @param {Object} requestBody - the body to add to the request (optional).
* Can be a stringified Object.
* @param {Object} addlHeaders - additional headers to be put on the call (optional).
* Can be a stringified Object.
* @param {getCallback} callback - a callback function to return the result (Generics)
* or the error
*/
genericAdapterRequest(uriPath, restMethod, queryData, requestBody, addlHeaders, callback) {
const meth = 'adapter-genericAdapterRequest';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.genericAdapterRequest(uriPath, restMethod, queryData, requestBody, addlHeaders, callback);
} catch (err) {
log.error(`${origin}: ${err}`);
return callback(null, err);
}
}
/**
* Makes the requested generic call with no base path or version
*
* @function genericAdapterRequestNoBasePath
* @param {String} uriPath - the path of the api call - do not include the host, port, base path or version (required)
* @param {String} restMethod - the rest method (GET, POST, PUT, PATCH, DELETE) (required)
* @param {Object} queryData - the parameters to be put on the url (optional).
* Can be a stringified Object.
* @param {Object} requestBody - the body to add to the request (optional).
* Can be a stringified Object.
* @param {Object} addlHeaders - additional headers to be put on the call (optional).
* Can be a stringified Object.
* @param {getCallback} callback - a callback function to return the result (Generics)
* or the error
*/
genericAdapterRequestNoBasePath(uriPath, restMethod, queryData, requestBody, addlHeaders, callback) {
const meth = 'adapter-genericAdapterRequestNoBasePath';
const origin = `${this.id}-${meth}`;
log.trace(origin);
try {
return super.genericAdapterRequestNoBasePath(uriPath, restMethod, queryData, requestBody, addlHeaders, callback);
} catch (err) {
log.error(`${origin}: ${err}`);
return callback(null, err);
}
}
/* INVENTORY CALLS */
/**
* @summary run the adapter lint script to return the results.
*
* @function iapRunAdapterLint
* @param {Callback} callback - callback function
*/
iapRunAdapterLint(callback) {
const meth = 'adapter-iapRunAdapterLint';
const origin = `${this.id}-${meth}`;
log.trace(origin);
return super.iapRunAdapterLint(callback);
}
/**
* @summary run the adapter test scripts (baseunit and unit) to return the results.
* can not run integration as there can be implications with that.
*
* @function iapRunAdapterTests
* @param {Callback} callback - callback function
*/
iapRunAdapterTests(callback) {
const meth = 'adapter-iapRunAdapterTests';
const origin = `${this.id}-${meth}`;
log.trace(origin);
return super.iapRunAdapterTests(callback);
}
/**
* @summary provide inventory information abbout the adapter
*
* @function iapGetAdapterInventory
* @param {Callback} callback - callback function
*/
iapGetAdapterInventory(callback) {
const meth = 'adapter-iapGetAdapterInventory';
const origin = `${this.id}-${meth}`;
log.trace(origin);
return super.iapGetAdapterInventory(callback);
}
/**
* @callback healthCallback
* @param {Object} result - the result of the get request (contains an id and a status)
*/
/**
* @callback getCallback
* @param {Object} result - the result of the get request (entity/ies)
* @param {String} error - any error that occurred
*/
/**
* @callback createCallback
* @param {Object} item - the newly created entity
* @param {String} error - any error that occurred
*/
/**
* @callback updateCallback
* @param {String} status - the status of the update action
* @param {String} error - any error that occurred
*/
/**
* @callback deleteCallback
* @param {String} status - the status of the delete action
* @param {String} error - any error that occurred
*/
/**
* @function getIncidentById
* @pronghornType method
* @name getIncidentById
* @summary Get incident
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getIncidentById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getIncidentById(id, callback) {
const meth = 'adapter-getIncidentById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Incident', 'getIncidentById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getIncidentById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateIncidentById
* @pronghornType method
* @name updateIncidentById
* @summary Update incident with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Incident fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateIncidentById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateIncidentById(id, body, callback) {
const meth = 'adapter-updateIncidentById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Incident', 'updateIncidentById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateIncidentById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteIncidentById
* @pronghornType method
* @name deleteIncidentById
* @summary Delete incident
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteIncidentById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteIncidentById(id, callback) {
const meth = 'adapter-deleteIncidentById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Incident', 'deleteIncidentById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteIncidentById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getIncidents
* @pronghornType method
* @name getIncidents
* @summary List of incidents
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getIncidents
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getIncidents(callback) {
const meth = 'adapter-getIncidents';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Incident', 'getIncidents', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getIncidents'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createIncident
* @pronghornType method
* @name createIncident
* @summary Create new incident
*
* @param {object} body - Incident fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createIncident
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createIncident(body, callback) {
const meth = 'adapter-createIncident';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Incident', 'createIncident', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createIncident'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getProblemById
* @pronghornType method
* @name getProblemById
* @summary Get problem
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getProblemById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getProblemById(id, callback) {
const meth = 'adapter-getProblemById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Problem', 'getProblemById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getProblemById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateProblemById
* @pronghornType method
* @name updateProblemById
* @summary Update problem with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Problem fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateProblemById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateProblemById(id, body, callback) {
const meth = 'adapter-updateProblemById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Problem', 'updateProblemById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateProblemById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteProblemById
* @pronghornType method
* @name deleteProblemById
* @summary Delete problem
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteProblemById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteProblemById(id, callback) {
const meth = 'adapter-deleteProblemById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Problem', 'deleteProblemById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteProblemById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getProblems
* @pronghornType method
* @name getProblems
* @summary List of problems
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getProblems
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getProblems(callback) {
const meth = 'adapter-getProblems';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Problem', 'getProblems', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getProblems'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createProblem
* @pronghornType method
* @name createProblem
* @summary Create new problem
*
* @param {object} body - Problem fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createProblem
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createProblem(body, callback) {
const meth = 'adapter-createProblem';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Problem', 'createProblem', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createProblem'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getChangeById
* @pronghornType method
* @name getChangeById
* @summary Get change
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getChangeById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getChangeById(id, callback) {
const meth = 'adapter-getChangeById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Change', 'getChangeById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getChangeById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateChangeById
* @pronghornType method
* @name updateChangeById
* @summary Update change with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Change fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateChangeById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateChangeById(id, body, callback) {
const meth = 'adapter-updateChangeById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Change', 'updateChangeById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateChangeById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteChangeById
* @pronghornType method
* @name deleteChangeById
* @summary Delete change
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteChangeById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteChangeById(id, callback) {
const meth = 'adapter-deleteChangeById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Change', 'deleteChangeById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteChangeById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getChanges
* @pronghornType method
* @name getChanges
* @summary List of changes
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getChanges
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getChanges(callback) {
const meth = 'adapter-getChanges';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Change', 'getChanges', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getChanges'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createChange
* @pronghornType method
* @name createChange
* @summary Create new change
*
* @param {object} body - Change fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createChange
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createChange(body, callback) {
const meth = 'adapter-createChange';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Change', 'createChange', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createChange'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getChangeCatalogById
* @pronghornType method
* @name getChangeCatalogById
* @summary Get change catalog
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getChangeCatalogById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getChangeCatalogById(id, callback) {
const meth = 'adapter-getChangeCatalogById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('ChangeCatalog', 'getChangeCatalogById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getChangeCatalogById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateChangeCatalogById
* @pronghornType method
* @name updateChangeCatalogById
* @summary Update change catalog with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Change catalog fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateChangeCatalogById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateChangeCatalogById(id, body, callback) {
const meth = 'adapter-updateChangeCatalogById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('ChangeCatalog', 'updateChangeCatalogById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateChangeCatalogById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteChangeCatalogById
* @pronghornType method
* @name deleteChangeCatalogById
* @summary Delete change catalog
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteChangeCatalogById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteChangeCatalogById(id, callback) {
const meth = 'adapter-deleteChangeCatalogById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('ChangeCatalog', 'deleteChangeCatalogById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteChangeCatalogById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getChangeCatalogs
* @pronghornType method
* @name getChangeCatalogs
* @summary List of change catalogs
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getChangeCatalogs
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getChangeCatalogs(callback) {
const meth = 'adapter-getChangeCatalogs';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('ChangeCatalog', 'getChangeCatalogs', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getChangeCatalogs'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createChangeCatalog
* @pronghornType method
* @name createChangeCatalog
* @summary Create new change catalog
*
* @param {object} body - Change catalog fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createChangeCatalog
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createChangeCatalog(body, callback) {
const meth = 'adapter-createChangeCatalog';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('ChangeCatalog', 'createChangeCatalog', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createChangeCatalog'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getReleaseById
* @pronghornType method
* @name getReleaseById
* @summary Get release
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getReleaseById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getReleaseById(id, callback) {
const meth = 'adapter-getReleaseById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Release', 'getReleaseById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getReleaseById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateReleaseById
* @pronghornType method
* @name updateReleaseById
* @summary Update release with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Release fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateReleaseById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateReleaseById(id, body, callback) {
const meth = 'adapter-updateReleaseById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Release', 'updateReleaseById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateReleaseById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteReleaseById
* @pronghornType method
* @name deleteReleaseById
* @summary Delete release
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteReleaseById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteReleaseById(id, callback) {
const meth = 'adapter-deleteReleaseById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Release', 'deleteReleaseById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteReleaseById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getRelease
* @pronghornType method
* @name getRelease
* @summary List of release
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getRelease
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getRelease(callback) {
const meth = 'adapter-getRelease';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Release', 'getRelease', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getRelease'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createRelease
* @pronghornType method
* @name createRelease
* @summary Create new release
*
* @param {object} body - Release fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createRelease
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createRelease(body, callback) {
const meth = 'adapter-createRelease';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Release', 'createRelease', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createRelease'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getSolutionById
* @pronghornType method
* @name getSolutionById
* @summary Get solution
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getSolutionById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getSolutionById(id, callback) {
const meth = 'adapter-getSolutionById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Solution', 'getSolutionById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getSolutionById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateSolutionById
* @pronghornType method
* @name updateSolutionById
* @summary Update solution with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Solution fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateSolutionById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateSolutionById(id, body, callback) {
const meth = 'adapter-updateSolutionById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Solution', 'updateSolutionById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateSolutionById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteSolutionById
* @pronghornType method
* @name deleteSolutionById
* @summary Delete solution
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteSolutionById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteSolutionById(id, callback) {
const meth = 'adapter-deleteSolutionById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Solution', 'deleteSolutionById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteSolutionById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getSolutions
* @pronghornType method
* @name getSolutions
* @summary List of solutions
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getSolutions
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getSolutions(callback) {
const meth = 'adapter-getSolutions';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Solution', 'getSolutions', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getSolutions'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createSolution
* @pronghornType method
* @name createSolution
* @summary Create new solution
*
* @param {object} body - solution fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createSolution
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createSolution(body, callback) {
const meth = 'adapter-createSolution';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Solution', 'createSolution', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createSolution'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getCatalogItemById
* @pronghornType method
* @name getCatalogItemById
* @summary Get catalog item
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getCatalogItemById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getCatalogItemById(id, callback) {
const meth = 'adapter-getCatalogItemById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('CatalogItem', 'getCatalogItemById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getCatalogItemById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateCatalogItemById
* @pronghornType method
* @name updateCatalogItemById
* @summary Update catalog item with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Catalog item fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateCatalogItemById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateCatalogItemById(id, body, callback) {
const meth = 'adapter-updateCatalogItemById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('CatalogItem', 'updateCatalogItemById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateCatalogItemById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteCatalogItemById
* @pronghornType method
* @name deleteCatalogItemById
* @summary Delete catalog item
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteCatalogItemById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteCatalogItemById(id, callback) {
const meth = 'adapter-deleteCatalogItemById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('CatalogItem', 'deleteCatalogItemById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteCatalogItemById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getCatalogItems
* @pronghornType method
* @name getCatalogItems
* @summary List of catalog items
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getCatalogItems
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getCatalogItems(callback) {
const meth = 'adapter-getCatalogItems';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('CatalogItem', 'getCatalogItems', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getCatalogItems'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createCatalogItem
* @pronghornType method
* @name createCatalogItem
* @summary Create new catalog item
*
* @param {object} body - Catalog Item fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createCatalogItem
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createCatalogItem(body, callback) {
const meth = 'adapter-createCatalogItem';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('CatalogItem', 'createCatalogItem', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createCatalogItem'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createServiceRequest
* @pronghornType method
* @name createServiceRequest
* @summary Request a Service
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} [body] - Service Request fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createServiceRequest
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createServiceRequest(id, body, callback) {
const meth = 'adapter-createServiceRequest';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('ServiceRequest', 'createServiceRequest', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createServiceRequest'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getConfigurationItemById
* @pronghornType method
* @name getConfigurationItemById
* @summary Get configuration item
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getConfigurationItemById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getConfigurationItemById(id, callback) {
const meth = 'adapter-getConfigurationItemById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('ConfigurationItem', 'getConfigurationItemById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getConfigurationItemById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateConfigurationItemById
* @pronghornType method
* @name updateConfigurationItemById
* @summary Update configuration item with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Configuration Item fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateConfigurationItemById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateConfigurationItemById(id, body, callback) {
const meth = 'adapter-updateConfigurationItemById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('ConfigurationItem', 'updateConfigurationItemById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateConfigurationItemById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteConfigurationItemById
* @pronghornType method
* @name deleteConfigurationItemById
* @summary Delete configurationitem
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteConfigurationItemById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteConfigurationItemById(id, callback) {
const meth = 'adapter-deleteConfigurationItemById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('ConfigurationItem', 'deleteConfigurationItemById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteConfigurationItemById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getConfigurationItems
* @pronghornType method
* @name getConfigurationItems
* @summary List of configuration items
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getConfigurationItems
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getConfigurationItems(callback) {
const meth = 'adapter-getConfigurationItems';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('ConfigurationItem', 'getConfigurationItems', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getConfigurationItems'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createConfigurationItem
* @pronghornType method
* @name createConfigurationItem
* @summary Create new configurationitem
*
* @param {object} body - Configuration Item fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createConfigurationItem
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createConfigurationItem(body, callback) {
const meth = 'adapter-createConfigurationItem';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('ConfigurationItem', 'createConfigurationItem', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createConfigurationItem'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function appendDependentAssets
* @pronghornType method
* @name appendDependentAssets
* @summary Append multiple dependent assets
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} [body] - Dependencies fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /appendDependentAssets
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
appendDependentAssets(id, body, callback) {
const meth = 'adapter-appendDependentAssets';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('ConfigurationItem', 'appendDependentAssets', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['appendDependentAssets'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteAssetLink
* @pronghornType method
* @name deleteAssetLink
* @summary Delete dpendency by id
*
* @param {object} [body] - Dependencies fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteAssetLink
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteAssetLink(body, callback) {
const meth = 'adapter-deleteAssetLink';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('ConfigurationItem', 'deleteAssetLink', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteAssetLink'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getUserById
* @pronghornType method
* @name getUserById
* @summary Get user
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getUserById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getUserById(id, callback) {
const meth = 'adapter-getUserById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('User', 'getUserById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getUserById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateUserById
* @pronghornType method
* @name updateUserById
* @summary Update user with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - User fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateUserById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateUserById(id, body, callback) {
const meth = 'adapter-updateUserById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('User', 'updateUserById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateUserById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteUserById
* @pronghornType method
* @name deleteUserById
* @summary Delete user
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteUserById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteUserById(id, callback) {
const meth = 'adapter-deleteUserById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('User', 'deleteUserById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteUserById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getUsers
* @pronghornType method
* @name getUsers
* @summary List of Users
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getUsers
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getUsers(callback) {
const meth = 'adapter-getUsers';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('User', 'getUsers', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getUsers'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createUser
* @pronghornType method
* @name createUser
* @summary Create new user
*
* @param {object} body - User fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createUser
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createUser(body, callback) {
const meth = 'adapter-createUser';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('User', 'createUser', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createUser'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getSiteById
* @pronghornType method
* @name getSiteById
* @summary Get site
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getSiteById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getSiteById(id, callback) {
const meth = 'adapter-getSiteById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Site', 'getSiteById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getSiteById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateSiteById
* @pronghornType method
* @name updateSiteById
* @summary Update site with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Site fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateSiteById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateSiteById(id, body, callback) {
const meth = 'adapter-updateSiteById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Site', 'updateSiteById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateSiteById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteSiteById
* @pronghornType method
* @name deleteSiteById
* @summary Delete site
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteSiteById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteSiteById(id, callback) {
const meth = 'adapter-deleteSiteById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Site', 'deleteSiteById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteSiteById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getSites
* @pronghornType method
* @name getSites
* @summary List of Sites
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getSites
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getSites(callback) {
const meth = 'adapter-getSites';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Site', 'getSites', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getSites'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createSite
* @pronghornType method
* @name createSite
* @summary Create new site
*
* @param {object} body - Site fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createSite
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createSite(body, callback) {
const meth = 'adapter-createSite';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Site', 'createSite', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createSite'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getDepartmentById
* @pronghornType method
* @name getDepartmentById
* @summary Get department
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getDepartmentById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getDepartmentById(id, callback) {
const meth = 'adapter-getDepartmentById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Department', 'getDepartmentById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getDepartmentById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateDepartmentById
* @pronghornType method
* @name updateDepartmentById
* @summary Update department with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Department fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateDepartmentById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateDepartmentById(id, body, callback) {
const meth = 'adapter-updateDepartmentById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Department', 'updateDepartmentById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateDepartmentById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteDepartmentById
* @pronghornType method
* @name deleteDepartmentById
* @summary Delete department
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteDepartmentById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteDepartmentById(id, callback) {
const meth = 'adapter-deleteDepartmentById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Department', 'deleteDepartmentById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteDepartmentById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getDepartments
* @pronghornType method
* @name getDepartments
* @summary List of Departments
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getDepartments
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getDepartments(callback) {
const meth = 'adapter-getDepartments';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Department', 'getDepartments', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getDepartments'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createDepartment
* @pronghornType method
* @name createDepartment
* @summary Create new department
*
* @param {object} body - Department fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createDepartment
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createDepartment(body, callback) {
const meth = 'adapter-createDepartment';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Department', 'createDepartment', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createDepartment'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getRoleById
* @pronghornType method
* @name getRoleById
* @summary Get role
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getRoleById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getRoleById(id, callback) {
const meth = 'adapter-getRoleById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Role', 'getRoleById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getRoleById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateRoleById
* @pronghornType method
* @name updateRoleById
* @summary Update role with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Role fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateRoleById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateRoleById(id, body, callback) {
const meth = 'adapter-updateRoleById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Role', 'updateRoleById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateRoleById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteRoleById
* @pronghornType method
* @name deleteRoleById
* @summary Delete role
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteRoleById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteRoleById(id, callback) {
const meth = 'adapter-deleteRoleById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Role', 'deleteRoleById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteRoleById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getRoles
* @pronghornType method
* @name getRoles
* @summary List of roles
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getRoles
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getRoles(callback) {
const meth = 'adapter-getRoles';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Role', 'getRoles', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getRoles'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createRole
* @pronghornType method
* @name createRole
* @summary Create new role
*
* @param {object} body - Role fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createRole
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createRole(body, callback) {
const meth = 'adapter-createRole';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Role', 'createRole', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createRole'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getGroupById
* @pronghornType method
* @name getGroupById
* @summary Get group
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getGroupById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getGroupById(id, callback) {
const meth = 'adapter-getGroupById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Group', 'getGroupById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getGroupById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateGroupById
* @pronghornType method
* @name updateGroupById
* @summary Update group with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Group fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateGroupById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateGroupById(id, body, callback) {
const meth = 'adapter-updateGroupById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Group', 'updateGroupById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateGroupById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteGroupById
* @pronghornType method
* @name deleteGroupById
* @summary Delete group
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteGroupById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteGroupById(id, callback) {
const meth = 'adapter-deleteGroupById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Group', 'deleteGroupById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteGroupById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getGroups
* @pronghornType method
* @name getGroups
* @summary List of groups
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getGroups
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getGroups(callback) {
const meth = 'adapter-getGroups';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Group', 'getGroups', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getGroups'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createGroup
* @pronghornType method
* @name createGroup
* @summary Create new group
*
* @param {object} body - Group fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createGroup
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createGroup(body, callback) {
const meth = 'adapter-createGroup';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Group', 'createGroup', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createGroup'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getCategoryById
* @pronghornType method
* @name getCategoryById
* @summary Get category
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getCategoryById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getCategoryById(id, callback) {
const meth = 'adapter-getCategoryById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Category', 'getCategoryById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getCategoryById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateCategoryById
* @pronghornType method
* @name updateCategoryById
* @summary Update category with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Category fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateCategoryById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateCategoryById(id, body, callback) {
const meth = 'adapter-updateCategoryById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Category', 'updateCategoryById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateCategoryById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteCategoryById
* @pronghornType method
* @name deleteCategoryById
* @summary Delete category
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteCategoryById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteCategoryById(id, callback) {
const meth = 'adapter-deleteCategoryById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Category', 'deleteCategoryById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteCategoryById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getCategories
* @pronghornType method
* @name getCategories
* @summary List of categories
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getCategories
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getCategories(callback) {
const meth = 'adapter-getCategories';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Category', 'getCategories', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getCategories'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createCategory
* @pronghornType method
* @name createCategory
* @summary Create new category
*
* @param {object} body - Category fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createCategory
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createCategory(body, callback) {
const meth = 'adapter-createCategory';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Category', 'createCategory', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createCategory'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getHardwareById
* @pronghornType method
* @name getHardwareById
* @summary Get hardware
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getHardwareById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getHardwareById(id, callback) {
const meth = 'adapter-getHardwareById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Hardware', 'getHardwareById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getHardwareById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateHardwareById
* @pronghornType method
* @name updateHardwareById
* @summary Update hardware with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Hardware fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateHardwareById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateHardwareById(id, body, callback) {
const meth = 'adapter-updateHardwareById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Hardware', 'updateHardwareById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateHardwareById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteHardwareById
* @pronghornType method
* @name deleteHardwareById
* @summary Delete hardware
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteHardwareById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteHardwareById(id, callback) {
const meth = 'adapter-deleteHardwareById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Hardware', 'deleteHardwareById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteHardwareById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getHardwares
* @pronghornType method
* @name getHardwares
* @summary List of hardwares
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getHardwares
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getHardwares(callback) {
const meth = 'adapter-getHardwares';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Hardware', 'getHardwares', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getHardwares'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createHardware
* @pronghornType method
* @name createHardware
* @summary Create new hardware
*
* @param {object} body - Hardware fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createHardware
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createHardware(body, callback) {
const meth = 'adapter-createHardware';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Hardware', 'createHardware', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createHardware'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getWarranties
* @pronghornType method
* @name getWarranties
* @summary List of warranties
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getWarranties
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getWarranties(id, callback) {
const meth = 'adapter-getWarranties';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Hardware', 'getWarranties', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getWarranties'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createWarranty
* @pronghornType method
* @name createWarranty
* @summary Create new Warranty
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Warranty fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createWarranty
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createWarranty(id, body, callback) {
const meth = 'adapter-createWarranty';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Hardware', 'createWarranty', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createWarranty'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateWarrantyById
* @pronghornType method
* @name updateWarrantyById
* @summary Update warranty with specified fields
*
* @param {string} hardwareId - Numeric ID of the hardware
* @param {string} warrantyId - Numeric ID of the warranty
* @param {object} body - Warranty fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateWarrantyById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateWarrantyById(hardwareId, warrantyId, body, callback) {
const meth = 'adapter-updateWarrantyById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (hardwareId === undefined || hardwareId === null || hardwareId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['hardwareId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (warrantyId === undefined || warrantyId === null || warrantyId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['warrantyId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [hardwareId, warrantyId];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Hardware', 'updateWarrantyById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateWarrantyById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteWarrantyById
* @pronghornType method
* @name deleteWarrantyById
* @summary Delete warranty
*
* @param {string} hardwareId - Numeric ID of the hardware
* @param {string} warrantyId - Numeric ID of the warranty
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteWarrantyById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteWarrantyById(hardwareId, warrantyId, callback) {
const meth = 'adapter-deleteWarrantyById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (hardwareId === undefined || hardwareId === null || hardwareId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['hardwareId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (warrantyId === undefined || warrantyId === null || warrantyId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['warrantyId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [hardwareId, warrantyId];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Hardware', 'deleteWarrantyById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteWarrantyById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getMobileById
* @pronghornType method
* @name getMobileById
* @summary Get mobile device
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getMobileById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getMobileById(id, callback) {
const meth = 'adapter-getMobileById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('MobileDevice', 'getMobileById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getMobileById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateMobileById
* @pronghornType method
* @name updateMobileById
* @summary Update mobile device with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Mobile device fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateMobileById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateMobileById(id, body, callback) {
const meth = 'adapter-updateMobileById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('MobileDevice', 'updateMobileById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateMobileById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteMobileById
* @pronghornType method
* @name deleteMobileById
* @summary Delete mobile device
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteMobileById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteMobileById(id, callback) {
const meth = 'adapter-deleteMobileById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('MobileDevice', 'deleteMobileById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteMobileById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getMobiles
* @pronghornType method
* @name getMobiles
* @summary List of mobile devices
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getMobiles
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getMobiles(callback) {
const meth = 'adapter-getMobiles';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('MobileDevice', 'getMobiles', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getMobiles'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createMobile
* @pronghornType method
* @name createMobile
* @summary Create new mobile device
*
* @param {object} body - Mobile Device fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createMobile
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createMobile(body, callback) {
const meth = 'adapter-createMobile';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('MobileDevice', 'createMobile', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createMobile'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getAssetById
* @pronghornType method
* @name getAssetById
* @summary Get other asset
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getAssetById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getAssetById(id, callback) {
const meth = 'adapter-getAssetById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('OtherAsset', 'getAssetById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getAssetById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateAssetById
* @pronghornType method
* @name updateAssetById
* @summary Update other asset with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Other asset fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateAssetById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateAssetById(id, body, callback) {
const meth = 'adapter-updateAssetById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('OtherAsset', 'updateAssetById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateAssetById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteAssetById
* @pronghornType method
* @name deleteAssetById
* @summary Delete other asset
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteAssetById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteAssetById(id, callback) {
const meth = 'adapter-deleteAssetById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('OtherAsset', 'deleteAssetById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteAssetById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getAssets
* @pronghornType method
* @name getAssets
* @summary List of other assets
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getAssets
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getAssets(callback) {
const meth = 'adapter-getAssets';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('OtherAsset', 'getAssets', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getAssets'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createAsset
* @pronghornType method
* @name createAsset
* @summary Create new asset
*
* @param {object} body - Other Asset fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createAsset
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createAsset(body, callback) {
const meth = 'adapter-createAsset';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('OtherAsset', 'createAsset', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createAsset'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getSoftwareById
* @pronghornType method
* @name getSoftwareById
* @summary Get software
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getSoftwareById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getSoftwareById(id, callback) {
const meth = 'adapter-getSoftwareById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Software', 'getSoftwareById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getSoftwareById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getSoftwares
* @pronghornType method
* @name getSoftwares
* @summary List of softwares
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getSoftwares
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getSoftwares(callback) {
const meth = 'adapter-getSoftwares';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Software', 'getSoftwares', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getSoftwares'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getPrinterById
* @pronghornType method
* @name getPrinterById
* @summary Get printer
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getPrinterById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getPrinterById(id, callback) {
const meth = 'adapter-getPrinterById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Printer', 'getPrinterById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getPrinterById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updatePrinterById
* @pronghornType method
* @name updatePrinterById
* @summary Update printer with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Printer fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updatePrinterById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updatePrinterById(id, body, callback) {
const meth = 'adapter-updatePrinterById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Printer', 'updatePrinterById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updatePrinterById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getPrinters
* @pronghornType method
* @name getPrinters
* @summary List of printers
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getPrinters
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getPrinters(callback) {
const meth = 'adapter-getPrinters';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Printer', 'getPrinters', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getPrinters'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getContractById
* @pronghornType method
* @name getContractById
* @summary Get contract
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getContractById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getContractById(id, callback) {
const meth = 'adapter-getContractById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Contract', 'getContractById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getContractById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateContractById
* @pronghornType method
* @name updateContractById
* @summary Update contract with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Contract fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateContractById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateContractById(id, body, callback) {
const meth = 'adapter-updateContractById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Contract', 'updateContractById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateContractById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteContractById
* @pronghornType method
* @name deleteContractById
* @summary Delete contract
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteContractById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteContractById(id, callback) {
const meth = 'adapter-deleteContractById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Contract', 'deleteContractById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteContractById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getContracts
* @pronghornType method
* @name getContracts
* @summary List of contracts
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getContracts
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getContracts(callback) {
const meth = 'adapter-getContracts';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Contract', 'getContracts', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getContracts'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createContract
* @pronghornType method
* @name createContract
* @summary Create new contract
*
* @param {object} body - Contract fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createContract
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createContract(body, callback) {
const meth = 'adapter-createContract';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Contract', 'createContract', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createContract'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createItem
* @pronghornType method
* @name createItem
* @summary Create new contract's Item
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Item fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createItem
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createItem(id, body, callback) {
const meth = 'adapter-createItem';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Contract', 'createItem', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createItem'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateItemById
* @pronghornType method
* @name updateItemById
* @summary Update contract's item with specified fields
*
* @param {string} contractId - Numeric ID of the contract
* @param {string} itemId - Numeric ID of the item
* @param {object} body - Contract's Item fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateItemById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateItemById(contractId, itemId, body, callback) {
const meth = 'adapter-updateItemById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (contractId === undefined || contractId === null || contractId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['contractId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (itemId === undefined || itemId === null || itemId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['itemId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [contractId, itemId];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Contract', 'updateItemById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateItemById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteitemById
* @pronghornType method
* @name deleteitemById
* @summary Delete contract's item
*
* @param {string} contractId - Numeric ID of the contract
* @param {string} itemId - Numeric ID of the item
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteitemById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteitemById(contractId, itemId, callback) {
const meth = 'adapter-deleteitemById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (contractId === undefined || contractId === null || contractId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['contractId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (itemId === undefined || itemId === null || itemId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['itemId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [contractId, itemId];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Contract', 'deleteitemById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteitemById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getPurchaseOrderById
* @pronghornType method
* @name getPurchaseOrderById
* @summary Get purchase order
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getPurchaseOrderById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getPurchaseOrderById(id, callback) {
const meth = 'adapter-getPurchaseOrderById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('PurchaseOrder', 'getPurchaseOrderById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getPurchaseOrderById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updatePurchaseOrderById
* @pronghornType method
* @name updatePurchaseOrderById
* @summary Update purchase order with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Purchase Order fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updatePurchaseOrderById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updatePurchaseOrderById(id, body, callback) {
const meth = 'adapter-updatePurchaseOrderById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('PurchaseOrder', 'updatePurchaseOrderById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updatePurchaseOrderById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deletePurchaseOrderById
* @pronghornType method
* @name deletePurchaseOrderById
* @summary Delete purchase order
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deletePurchaseOrderById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deletePurchaseOrderById(id, callback) {
const meth = 'adapter-deletePurchaseOrderById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('PurchaseOrder', 'deletePurchaseOrderById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deletePurchaseOrderById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getCPurchaseOrders
* @pronghornType method
* @name getCPurchaseOrders
* @summary List of purchase orders
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getCPurchaseOrders
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getCPurchaseOrders(callback) {
const meth = 'adapter-getCPurchaseOrders';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('PurchaseOrder', 'getCPurchaseOrders', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getCPurchaseOrders'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createPurchaseOrder
* @pronghornType method
* @name createPurchaseOrder
* @summary Create new purchase order
*
* @param {object} body - Purchase order fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createPurchaseOrder
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createPurchaseOrder(body, callback) {
const meth = 'adapter-createPurchaseOrder';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('PurchaseOrder', 'createPurchaseOrder', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createPurchaseOrder'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getVendorById
* @pronghornType method
* @name getVendorById
* @summary Get vendor
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getVendorById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getVendorById(id, callback) {
const meth = 'adapter-getVendorById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Vendor', 'getVendorById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getVendorById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateVendorById
* @pronghornType method
* @name updateVendorById
* @summary Update vendor with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {object} body - Vendor fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateVendorById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateVendorById(id, body, callback) {
const meth = 'adapter-updateVendorById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Vendor', 'updateVendorById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateVendorById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteVendorById
* @pronghornType method
* @name deleteVendorById
* @summary Delete vendor
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteVendorById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteVendorById(id, callback) {
const meth = 'adapter-deleteVendorById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Vendor', 'deleteVendorById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteVendorById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getVendors
* @pronghornType method
* @name getVendors
* @summary List of vendors
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getVendors
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getVendors(callback) {
const meth = 'adapter-getVendors';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Vendor', 'getVendors', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getVendors'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createVendor
* @pronghornType method
* @name createVendor
* @summary Create new vendor
*
* @param {object} body - Vendor fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createVendor
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createVendor(body, callback) {
const meth = 'adapter-createVendor';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Vendor', 'createVendor', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createVendor'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createTask
* @pronghornType method
* @name createTask
* @summary Create new Task
*
* @param {string} id - Numeric ID of the object to get or update
* @param {string} objectType - Source object type
* @param {object} body - Task fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createTask
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createTask(id, objectType, body, callback) {
const meth = 'adapter-createTask';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (objectType === undefined || objectType === null || objectType === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['objectType'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [objectType, id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Task', 'createTask', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createTask'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateTaskById
* @pronghornType method
* @name updateTaskById
* @summary Update task with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {string} objectType - Source object type
* @param {string} taskId - Numeric ID of the task
* @param {object} body - Task fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateTaskById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateTaskById(id, objectType, taskId, body, callback) {
const meth = 'adapter-updateTaskById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (objectType === undefined || objectType === null || objectType === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['objectType'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (taskId === undefined || taskId === null || taskId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['taskId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [objectType, id, taskId];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Task', 'updateTaskById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateTaskById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteTaskById
* @pronghornType method
* @name deleteTaskById
* @summary Delete task
*
* @param {string} id - Numeric ID of the object to get or update
* @param {string} objectType - Source object type
* @param {string} taskId - Numeric ID of the task
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteTaskById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteTaskById(id, objectType, taskId, callback) {
const meth = 'adapter-deleteTaskById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (objectType === undefined || objectType === null || objectType === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['objectType'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (taskId === undefined || taskId === null || taskId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['taskId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [objectType, id, taskId];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Task', 'deleteTaskById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteTaskById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createComment
* @pronghornType method
* @name createComment
* @summary Create new Comment
*
* @param {string} id - Numeric ID of the object to get or update
* @param {string} objectType - Source object type
* @param {object} body - Comment fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createComment
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createComment(id, objectType, body, callback) {
const meth = 'adapter-createComment';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (objectType === undefined || objectType === null || objectType === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['objectType'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [objectType, id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Comment', 'createComment', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createComment'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateCommentById
* @pronghornType method
* @name updateCommentById
* @summary Update comment with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {string} objectType - Source object type
* @param {string} commentId - Numeric ID of the comment
* @param {object} body - Comment fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateCommentById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateCommentById(id, objectType, commentId, body, callback) {
const meth = 'adapter-updateCommentById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (objectType === undefined || objectType === null || objectType === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['objectType'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (commentId === undefined || commentId === null || commentId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['commentId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [objectType, id, commentId];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Comment', 'updateCommentById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateCommentById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteCommentById
* @pronghornType method
* @name deleteCommentById
* @summary Delete comment
*
* @param {string} id - Numeric ID of the object to get or update
* @param {string} objectType - Source object type
* @param {string} commentId - Numeric ID of the comment
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteCommentById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteCommentById(id, objectType, commentId, callback) {
const meth = 'adapter-deleteCommentById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (objectType === undefined || objectType === null || objectType === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['objectType'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (commentId === undefined || commentId === null || commentId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['commentId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [objectType, id, commentId];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Comment', 'deleteCommentById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteCommentById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getTimeTracks
* @pronghornType method
* @name getTimeTracks
* @summary List of time tracks
*
* @param {string} id - Numeric ID of the object to get or update
* @param {string} objectType - Source object type
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getTimeTracks
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getTimeTracks(id, objectType, callback) {
const meth = 'adapter-getTimeTracks';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (objectType === undefined || objectType === null || objectType === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['objectType'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [objectType, id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('TimeTrack', 'getTimeTracks', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getTimeTracks'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createTimeTrack
* @pronghornType method
* @name createTimeTrack
* @summary Create new time track
*
* @param {string} id - Numeric ID of the object to get or update
* @param {string} objectType - Source object type
* @param {object} body - Time track fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createTimeTrack
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createTimeTrack(id, objectType, body, callback) {
const meth = 'adapter-createTimeTrack';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (objectType === undefined || objectType === null || objectType === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['objectType'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [objectType, id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('TimeTrack', 'createTimeTrack', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createTimeTrack'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updateTimeTrackyById
* @pronghornType method
* @name updateTimeTrackyById
* @summary Update time track with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {string} objectType - Source object type
* @param {string} timeTrackId - Numeric ID of the time track
* @param {object} body - Time track fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updateTimeTrackyById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updateTimeTrackyById(id, objectType, timeTrackId, body, callback) {
const meth = 'adapter-updateTimeTrackyById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (objectType === undefined || objectType === null || objectType === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['objectType'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (timeTrackId === undefined || timeTrackId === null || timeTrackId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['timeTrackId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [objectType, id, timeTrackId];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('TimeTrack', 'updateTimeTrackyById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updateTimeTrackyById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteTimeTrackyById
* @pronghornType method
* @name deleteTimeTrackyById
* @summary Delete time track
*
* @param {string} id - Numeric ID of the object to get or update
* @param {string} objectType - Source object type
* @param {string} timeTrackId - Numeric ID of the time track
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteTimeTrackyById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteTimeTrackyById(id, objectType, timeTrackId, callback) {
const meth = 'adapter-deleteTimeTrackyById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (objectType === undefined || objectType === null || objectType === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['objectType'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (timeTrackId === undefined || timeTrackId === null || timeTrackId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['timeTrackId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [objectType, id, timeTrackId];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('TimeTrack', 'deleteTimeTrackyById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteTimeTrackyById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createPurchase
* @pronghornType method
* @name createPurchase
* @summary Create new purchase
*
* @param {string} id - Numeric ID of the object to get or update
* @param {string} objectType - Source object type
* @param {object} body - Purchase fields to fill
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createPurchase
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createPurchase(id, objectType, body, callback) {
const meth = 'adapter-createPurchase';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (objectType === undefined || objectType === null || objectType === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['objectType'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [objectType, id];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Purchase', 'createPurchase', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createPurchase'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function updatePurchaseById
* @pronghornType method
* @name updatePurchaseById
* @summary Update purchase with specified fields
*
* @param {string} id - Numeric ID of the object to get or update
* @param {string} objectType - Source object type
* @param {string} purchaseId - Numeric ID of the purchase
* @param {object} body - Purchase fields to update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /updatePurchaseById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
updatePurchaseById(id, objectType, purchaseId, body, callback) {
const meth = 'adapter-updatePurchaseById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (objectType === undefined || objectType === null || objectType === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['objectType'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (purchaseId === undefined || purchaseId === null || purchaseId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['purchaseId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (body === undefined || body === null || body === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['body'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [objectType, id, purchaseId];
const bodyVars = body;
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Purchase', 'updatePurchaseById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['updatePurchaseById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deletePurchaseById
* @pronghornType method
* @name deletePurchaseById
* @summary Delete purchase
*
* @param {string} id - Numeric ID of the object to get or update
* @param {string} objectType - Source object type
* @param {string} purchaseId - Numeric ID of the purchase
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deletePurchaseById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deletePurchaseById(id, objectType, purchaseId, callback) {
const meth = 'adapter-deletePurchaseById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (objectType === undefined || objectType === null || objectType === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['objectType'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (purchaseId === undefined || purchaseId === null || purchaseId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['purchaseId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [objectType, id, purchaseId];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Purchase', 'deletePurchaseById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deletePurchaseById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createMembership
* @pronghornType method
* @name createMembership
* @summary Create new Membership. Memberships are used to relate a user to a group.
Example: curl -H "X-Samanage-Authorization: Bearer TOKEN" -H 'Accept: application/xml' -H 'Content-Type:text/xml' -X POST https://api.samanage.com/memberships.xml?group_id=1&user_ids=1
*
* @param {string} groupId - Numeric ID of the group
* @param {string} userIds - Numeric IDs of the users
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /createMembership
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createMembership(groupId, userIds, callback) {
const meth = 'adapter-createMembership';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (groupId === undefined || groupId === null || groupId === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['groupId'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (userIds === undefined || userIds === null || userIds === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['userIds'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = { groupId, userIds };
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Membership', 'createMembership', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createMembership'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function deleteMemebershipById
* @pronghornType method
* @name deleteMemebershipById
* @summary Delete membership.
Example: curl -H "X-Samanage-Authorization: Bearer TOKEN" -H 'Accept: application/xml' -H 'Content-Type:text/xml' -X DELETE https://api.samanage.com/memberships/1.xml
*
* @param {string} id - Numeric ID of the object to get or update
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /deleteMemebershipById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
deleteMemebershipById(id, callback) {
const meth = 'adapter-deleteMemebershipById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Membership', 'deleteMemebershipById', reqObj, false, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['deleteMemebershipById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getAudits
* @pronghornType method
* @name getAudits
* @summary List of audits
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getAudits
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getAudits(callback) {
const meth = 'adapter-getAudits';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Audit', 'getAudits', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getAudits'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getAuditById
* @pronghornType method
* @name getAuditById
* @summary Get audits of a specific object. Example: curl -X GET "https://api.samanage.com/incidents/1/audits" -H "accept: application/json" -H "X-Samanage-Authorization: Bearer TOKEN"
*
* @param {string} id - Numeric ID of the object to get or update
* @param {string} objectType - Source object type
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {POST} /getAuditById
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getAuditById(id, objectType, callback) {
const meth = 'adapter-getAuditById';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
if (id === undefined || id === null || id === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['id'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
if (objectType === undefined || objectType === null || objectType === '') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['objectType'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [objectType, id];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Audit', 'getAuditById', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getAuditById'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function getRisks
* @pronghornType method
* @name getRisks
* @summary List of risks
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /getRisks
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
getRisks(callback) {
const meth = 'adapter-getRisks';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// if you want to expose addlHeaders to workflow, add it to the method signature here and in pronghorn.json
let thisHeaderData = null;
// if the additional headers was passed in as a string parse the json into an object
if (thisHeaderData !== null && thisHeaderData.constructor === String) {
try {
// parse the additional headers object that was passed in
thisHeaderData = JSON.parse(thisHeaderData);
} catch (err) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'addlHeaders string must be a stringified JSON', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
} else if (thisHeaderData === null) {
thisHeaderData = { xSamanageAuthorization: '' };
}
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams,
addlHeaders: thisHeaderData
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Risk', 'getRisks', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['getRisks'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
/**
* @function createAttachment
* @pronghornType method
* @name createAttachment
* @summary Create a new attachment: curl -H 'X-Samanage-Authorization: Bearer TOKEN' -F 'file[attachable_type]=PARENT_OBJECT_TYPE' -F 'file[attachable_id]=PARENT_OBJECT_ID' -F 'file[attachment]=@/PATH/TO/FILE' -H 'Accept: application/vnd.samanage.v1.3+xml' -H 'Content-Type: multipart/form-data' -X POST https://api.samanage.com/attachments.xml/json
*
* @param {getCallback} callback - a callback function to return the result
* @return {object} results - An object containing the response of the action
*
* @route {GET} /createAttachment
* @roles admin
* @task true
*/
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
createAttachment(callback) {
const meth = 'adapter-createAttachment';
const origin = `${this.id}-${meth}`;
log.trace(origin);
if (this.suspended && this.suspendMode === 'error') {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU VALIDATE DATA */
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
const queryParamsAvailable = {};
const queryParams = {};
const pathVars = [];
const bodyVars = {};
// loop in template. long callback arg name to avoid identifier conflicts
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
}
});
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
// see adapter code documentation for more information on the request object's fields
const reqObj = {
payload: bodyVars,
uriPathVars: pathVars,
uriQuery: queryParams
};
try {
// Make the call -
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
return this.requestHandlerInst.identifyRequest('Attachment', 'createAttachment', reqObj, true, (irReturnData, irReturnError) => {
// if we received an error or their is no response on the results
// return an error
if (irReturnError) {
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
return callback(null, irReturnError);
}
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['createAttachment'], null, null, null);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
// return the response
return callback(irReturnData, null);
});
} catch (ex) {
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
return callback(null, errorObj);
}
}
}
module.exports = SolarwindsServiceDesk;