Name

global.ConsumerDao

Description

Dao for use cases related to Contact object.

Script

var ConsumerDao = Class.create();
ConsumerDao.prototype = {
  initialize: function() {
  	this.logger = CSMBaseLogger.getLogger("ConsumerDao");
  },

  createConsumer : function(params){
  	var consumerGr = CSMBaseAPIUtils.prepareGlideRecord(params, CSMBaseConstants.CONSUMER_TABLE);
  	var consumerCreateResult = consumerGr.insert();
  	if(!consumerCreateResult){
  		this.logger.error("last error message = " + consumerGr.getLastErrorMessage());
  		return CSMBaseAPIErrorHandler.getFormattedError(403, "Operation Failed", consumerGr.getLastErrorMessage());
  	}
  	if(consumerCreateResult && params.social_handle && params.social_channel && params.social_handle_url){
  		this.socialUtils = new SocialUtils();
  		this.socialUtils.bindConsumerToSocialProfile(consumerCreateResult, params.social_handle, params.social_handle_url, params.social_channel);
  	}
  	this.logger.info("inside ConsumerDao:createConsumer result = "+consumerCreateResult);
  	return consumerCreateResult;
  },

  getConsumerBySearchQueryString : function(searchQueryStr, offset, limit){
  	this.logger.info("inside ConsumerDao:getConsumerBySearchQueryString searchQueryStr = "+searchQueryStr);

  	var resultJson = {};
  	var consumerObjArr = [];
  	var consumerGr = new GlideRecordSecure(CSMBaseConstants.CONSUMER_TABLE);
  	if(JSUtil.notNil(searchQueryStr))
  		consumerGr.addEncodedQuery(searchQueryStr);
  	consumerGr.orderBy("name");
  	var firstRow = parseInt(offset);
  	var lastRow = firstRow+parseInt(limit);
  	consumerGr.chooseWindow(firstRow, lastRow);
  	consumerGr.query();
  	resultJson.totalRecords = CSMBaseAPIUtils.getRowsCount(CSMBaseConstants.CONSUMER_TABLE,searchQueryStr);
  	while(consumerGr.next()){
  		var consumerObj = CSMBaseAPIUtils.getJSONFromGR(consumerGr);
  		this.logger.debug("inside ConsumerDao:getConsumerBySearchQueryString consumerObj = "+JSON.stringify(consumerObj));
  		consumerObjArr.push(consumerObj);
  	}
  	resultJson.consumers = consumerObjArr;
  	return resultJson;
  },
  
  getConsumerById : function(id, displayValue){
  	this.logger.info("inside ConsumerDao:getConsumerById id = "+id);

  	var consumerObj = null;
  	if(id){
  		var consumerGr = new GlideRecordSecure(CSMBaseConstants.CONSUMER_TABLE);
  		if(consumerGr.get(id)){
  			consumerObj = CSMBaseAPIUtils.getJSONFromGR(consumerGr,displayValue);
  			this.logger.debug("inside ConsumerDao:getConsumerById consumerObj = "+JSON.stringify(consumerObj));
  		}
  	}
  	return consumerObj;
  },
  
  /** 
  * This function returns the sys_user record class name for any given user/contact
  * If user is not specified, this returns logged in user's class name
  * Currently this function is being used by CSP portal's Support Profile menu as check condition
  */
  getContactClass: function(userID) {
  	if(gs.nil(userID))
  		userID = gs.getUser().getID();
  	var userClassKey = userID + "_userClass",
  		userClass = gs.getSession().getClientData(userClassKey);
  	if (gs.nil(userClass)) {
  		var sysUserGR = new GlideRecord("sys_user");
  		if (sysUserGR.get(userID)) {
  			userClass = sysUserGR.getValue("sys_class_name");
  			gs.getSession().putClientData(userClassKey, userClass);
  		}
  	}
  	return userClass;
  },

  type: 'ConsumerDao'
};

Sys ID

144fbc675352030097a2ddeeff7b1238

Offical Documentation

Official Docs: