Blank response object for REST API

Eash1
Tera Expert

Hello,

I am using a scripted REST API to do an close operation but unfortunately it does return an empty response but when i am trying to print the object it does works fine.

 

Code - 

(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {

var LOG_SOURCE = 'REQUEST API:POST:CLOSE CTASK';
var reqBody = request.body.data;
var taskNumber = request.body.data.task_number;
var workNotes = request.body.data.work_notes;
var state = request.body.data.state;
var successMessage = "Task update successful";
var failureMessage = "Task update failure. Please raise an incident to ESM-Frontline and provide message body and response.";
var inValidMessage = "Not a valid Catalog Task Number. Please provide a valid catalog task number associated to RITM";
var responseObj = {};

if(!reqBody.hasOwnProperty('task_number') || !reqBody.hasOwnProperty('state') ){
responseObj= generateResponse(2,taskNumber, "Please provide a valid Task# and State value");
return responseObj;
}

// Get the target change number from the request body.
var accessKey = request.body.data.access_key;

// Verify API Customer
var apiAuthorization = new APIAuthorization(request, accessKey, null);
if (!apiAuthorization.isAuthorized()) {
gs.log('Error: ' + accessKey + ' not authorized', LOG_SOURCE);
return {
status: 2,
responseText: apiAuthorization.message()
};
}

//Updat Catalog Task
updateTask(taskNumber,workNotes,state);

function updateTask(taskNumber,workNotes,state){
try{
var cTaask = new GlideRecord("sc_task");
cTaask.addEncodedQuery('active=true^number='+taskNumber);
cTaask.query();

if(cTaask.next()){
cTaask.work_notes = workNotes;
cTaask.state = state;
cTaask.update();

responseObj = generateResponse(1,taskNumber,successMessage);

}else{
responseObj = generateResponse(2,taskNumber,inValidMessage);
}
gs.info("responseObj : " + responseObj); //DOES print correct object
return responseObj; // DOES not return any value
}
catch(e){
gs.error("Task update failure for " + taskNumber, LOG_SOURCE);
responseObj= generateResponse(2,taskNumber,failureMessage);
return responseObj;
}

}

//Generate Catalog Item Response
function generateResponse(statusCode,number,message){
gs.info("inside response body method : " + message);
return JSON.stringify({ 'status': statusCode.toString(), 'Task#': number.toString(), 'responseText': message.toString()});
}



})(request, response);

 

Not sure what i am missing here ?

 

Thank you,

Eash

1 ACCEPTED SOLUTION

Ashutosh Munot1
Kilo Patron
Kilo Patron

HI,


Can you try putting below code:

//Updat Catalog Task
var res = updateTask(taskNumber,workNotes,state);

gs.info(res);

 

Thanks,
Ashutosh

View solution in original post

1 REPLY 1

Ashutosh Munot1
Kilo Patron
Kilo Patron

HI,


Can you try putting below code:

//Updat Catalog Task
var res = updateTask(taskNumber,workNotes,state);

gs.info(res);

 

Thanks,
Ashutosh