The Zurich release has arrived! Interested in new features and functionalities? Click here for more

Question about upload the photo to user table

JackieZhang
Tera Contributor

Hi all,

I want to write a scripted api to upload the photo to user table. Here is my code but failed. Please help to correct the code.

 

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

    var requestBody = request.body.dataString;
    var parser = new global.JSON();
    var parsedData = parser.decode(requestBody);
    var correlation_id = parsedData.userID;
    //var fileName = 'photo';
    var fileContentType = parsedData.contentType;
    var fileData = parsedData.fileData;
    var rec = new GlideRecord('sys_user');
    rec.addQuery('u_correlation_id', correlation_id);
    rec.query();
    if (rec.next()) {
        var attachment_request = new sn_ws.RESTMessageV2();
        attachment_request.setEndpoint(endPoint);
        attachment_request.setHttpMethod('POST');
        var user = 'xxx';
        var password = 'xxxxx';
        attachment_request.setBasicAuth(user, password);
        attachment_request.setRequestHeader("Accept", "application/json");
        attachment_request.setRequestHeader("Content-Type", fileContentType);
        attachment_request.setRequestBody(fileData);
        var attachment_response = attachment_request.execute();
        response.setBody(attachment_response.responseBody);
        response.setStatus(attachment_response.getStatusCode());
    } else {
        var error = "The User ID " + correlation_id + " not found in ServiceNow";
        var responseBodyFailure = {
            "error": error
        };
        responseBodyFailure.status = "Failure";
        response.setStatus(404);
        response.setBody(responseBodyFailure);
    }

})(request, response);
10 REPLIES 10

You means this solution? but write() is only for plan text?

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

	var requestBody = request.body.dataString;
	var parser = new global.JSON();
	var parsedData = parser.decode(requestBody);
	var number = parsedData.incidentNumber;
	var fileName = parsedData.fileName;
	var fileContentType = parsedData.contentType;
	var fileData = parsedData.fileData;

	var rec = new GlideRecord('incident');
	rec.addQuery('number',number);
	rec.query();
	if(rec.next()){
		var sa = new GlideSysAttachment();
		sa.write(rec, fileName, fileContentType, fileData);
		var responseBody = {};
		responseBody.incNumber = number;
		responseBody.status = "Success";
		response.setBody(responseBody);
	}
	else{
		var responseBodyFailure = {};
		responseBodyFailure.status = "Failure";
		response.setBody(responseBodyFailure);
	}

})(request, response);