/**
* @NApiVersion 2.1
* @NScriptType Suitelet
*/
define(['N/https', '../CC/JJ Clutch Library.js'],
(https,clutchLib) => {
function checkForParameter(parameter, parameterName) {
if (
parameter != "" &&
parameter != null &&
parameter != undefined &&
parameter != "null" &&
parameter != "undefined" &&
parameter != " " &&
parameter != false
) {
return true;
} else {
if (parameterName)
log.debug(
"Empty Value found",
"Empty Value for parameter " + parameterName
);
return false;
}
}
const clutchLibrary = clutchLib.Library;
/**
* Defines the Suitelet script trigger point.
* @param {Object} scriptContext
* @param {ServerRequest} scriptContext.request - Incoming request
* @param {ServerResponse} scriptContext.response - Suitelet response
* @since 2015.2
*/
const onRequest = (scriptContext) => {
log.debug(scriptContext.request.method)
if (scriptContext.request.method == "GET") {
var custEmail = scriptContext.request.parameters.email;
log.debug("custEmail", typeof custEmail)
//var Email = JSON.parse(custEmail)
var searchObj = {
"filters": {
"email": custEmail
},
"returnFields": {
"balances": true,
"customer": true,
"alternateCustomer": true,
"giverCustomer": true,
"isEnrolled": true,
"customData": true,
"customCardNumber": true
}
}
var searchObject = JSON.stringify(searchObj)
log.debug("searchObject", searchObject)
var headerObj = {
authorization: 'Basic ZWM3ODI5ODktNjRiOS00MzE5LTkwN2ItOTVjYzdhZmY4ZTBlOjVFUjFIVUlVUTgxUVhUSDFZUkI0',
brand: 'SME7267',
location: 'SMEECOMM',
terminal: 'SMEECOMMWS',
api: 'ec782989-64b9-4319-907b-95cc7aff8e0e',
secret: '5ER1HUIUQ81QXTH1YRB4',
};
let searchRequestUrl = clutchLibrary.CLUTCH_API_REQUESTS.POST_SEARCHCUSTOMER;
//search request for customer
var searchResponse = https.post({
url: searchRequestUrl,
body: searchObject,
headers: headerObj,
});
log.debug("searchResponse", searchResponse)
var card = JSON.parse(searchResponse.body)
var cards = card.cards
log.debug("cards", cards)
if (checkForParameter(cards)) {
var existingCustCardNum = cards[0].cardNumber
var existingReward = cards[0].balances[0].amount
log.debug("existingReward", existingReward)
var responseObj = {
"status": "SUCCESS",
"existingReward": existingReward
}
sendResponse(scriptContext, responseObj)
} else {
var respObj= scriptContext.response.write(JSON.stringify({
status: "NOT EXIST",
message: "This customer is not exist in clutch OR there is no existing reward for this customer"
}));
sendResponse(scriptContext, respObj)
}
/*****************************************************************************
* All response will be send from this common point
******************************************************************************/
function sendResponse(scriptContext, response)
{
let callBackFunction = scriptContext.request.parameters.callback ? scriptContext.request.parameters.callback : "?";
return scriptContext.response.write(`${callBackFunction}('${decodeURIComponent(JSON.stringify({
"summary": response,
//"request": {parameters: scriptContext.request.parameters}
}))}')`), true;
}
}
}
return {onRequest}
});