Name

sn_table_builder.TBUtil

Description

No description available

Script

var TBUtil = Class.create();

TBUtil.isGRInstance = function isGRInstance(gr) {
  return gr instanceof GlideRecord;
};

// Object assign pollyfill
TBUtil.assign = function assign(target) {
  for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];
      for (var key in source) {
          if (Object.prototype.hasOwnProperty.call(source, key)) {
              target[key] = source[key];
          }
      }
  }
  return target;
};

TBUtil.getValidTableId = function(value) {
  var gr = new GlideRecord(TBConstants.SYS_CLASS_DB_OBJECT);
  gr.addEncodedQuery('name=' + value + '^ORsys_id=' + value);
  gr.query();
  if (gr.next())
      return gr.getValue('sys_id');
  else
      return value;
};

TBUtil.getRecordLimit = function getRecordLimit(offset, limit) {
  var baseLimit = limit || 10;
  var lower = (offset - 1) * baseLimit;
  var upper = (offset * baseLimit);
  return {
      firstIndex: lower,
      lastIndex: upper
  };
};

TBUtil.prepConditionalQuery = function prepConditionalQuery() {
  var querySets = Array.prototype.slice.call(arguments);
  return querySets
      .filter(function(qset) {
          return qset && qset.trim();
      }).join('^');
};

TBUtil.applySortQuery = function applySortQuery(query, sortQuery) {
  if (!gs.nil(sortQuery))
      return query + '^EQ^' + sortQuery;
  return query;
};

TBUtil.getPerspectives = function() {
  var perspectives = [];
  for (var i in TBConstants.TB_PERSPECTIVES) {
      perspectives.push(TBConstants.TB_PERSPECTIVES[i]);
  }
  return perspectives;
};

/**
* normalize query params values, which come in array
*/
TBUtil.normalizeQueryParams = function(params) {
  var nrm = {};
  Object.keys(params).forEach(function(item) {
      nrm[item] = params[item][0];
  });
  return nrm;
};

TBUtil.error = function(res) {
  var error = new sn_ws_err.ServiceError();
  error.setStatus(res.status || TBConstants.CODE_404);
  error.setMessage(res.message);
  error.setDetail(res.detail || '');
  return error;
};

// Note - not using now, but keeping it for sometime for future uses, if any.
TBUtil.getAdditionalInfo = function(fieldClass) {
  var typeRecord = new GlideRecord(TBConstants.FIELD_CLASS_TABLE);
  typeRecord.addQuery('name', fieldClass);
  typeRecord.query();
  typeRecord.next();
  var sysId = typeRecord.getValue('sys_id');
  var primitiveType = typeRecord.getValue('scalar_type');
  var additionalInfo = new GetAdditionalInformation(TBConstants.FIELD_CLASS_TABLE, sysId, primitiveType);

  return {
      "icon": additionalInfo.getIcon(),
      "image": additionalInfo.getImage()
  };
};

TBUtil.getChoiceTypes = function() {
  var res = [];
  var gr = new GlideRecord(TBConstants.SYS_CLASS_CHOICE);
  gr.addQuery('name', TBConstants.SYS_CLASS_DICTIONARY);
  gr.addQuery('element', 'choice');
  gr.addQuery('language', gs.getSession().getLanguage());
  gr.query();
  while (gr.next()) {
      res.push({
          label: gr.getDisplayValue('label'),
          id: gr.getValue('value')
      });
  }
  return res;
};

TBUtil.getChoiceFieldMeta = function(choiceType, name, element) {
  var choices = [];

  var gr = new GlideRecord(TBConstants.SYS_CLASS_CHOICE);
  gr.addQuery('name', name);
  gr.addQuery('element', element);

  // if user session language is english - we have to send choice options whose language is only english
  // if user session language is non-english - we have to send choice options whose language is enligsh/session language
  var grOR = gr.addQuery('language', 'en');
  grOR.addOrCondition('language', gs.getSession().getLanguage());

  gr.query();
  while (gr.next()) {
      choices.push({
          sequence: gr.getValue('sequence') || '0',
          sysId: gr.getValue('sys_id'),
          label: gr.getDisplayValue('label'),
          value: gr.getValue('value')
      });
  }
  return {
      choiceType: choiceType,
      choices: choices,
      name: name,
      element: element
  };
};

TBUtil.isQueryHasTableFilter = function(query) {
  return query.indexOf('name=') !== -1;
};

TBUtil.prototype = {
  initialize: function() {},

  type: 'TBUtil'
};

Sys ID

2de1c994737910107419c907fbf6a76b

Offical Documentation

Official Docs: