6540ddba96871ed646f127eed3875660e971cdd2
[motion2.git] / server / api / cmCustomField / cmCustomField.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x8958=['limit','count','offset','apply','reject','save','update','then','error','name','send','merge','body','contact','message','agent','index','CmCustomField','fieldName','type','key','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','pick','where','filter','options','includeAll','include','catch','show','rawAttributes','find','destroy','params','create','sequelize','transaction','Sequelize','text','number','INTEGER','switch','BOOLEAN','defaultValue','queryInterface','addColumn','cm_contacts','cf_%d','rimraf','bluebird','util','path','sox','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined'];(function(_0xac1d22,_0xbf01e5){var _0x3a30cc=function(_0x46fb8a){while(--_0x46fb8a){_0xac1d22['push'](_0xac1d22['shift']());}};_0x3a30cc(++_0xbf01e5);}(_0x8958,0x93));var _0x8895=function(_0x2d8a76,_0x250ab4){_0x2d8a76=_0x2d8a76-0x0;var _0xb14acd=_0x8958[_0x2d8a76];return _0xb14acd;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8895('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x8895('0x1'));var Mustache=require('mustache');var util=require(_0x8895('0x2'));var path=require(_0x8895('0x3'));var sox=require(_0x8895('0x4'));var csv=require('to-csv');var ejs=require(_0x8895('0x5'));var fs=require('fs');var fs_extra=require(_0x8895('0x6'));var _=require(_0x8895('0x7'));var squel=require(_0x8895('0x8'));var crypto=require(_0x8895('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x8895('0xa'));var toCsv=require(_0x8895('0xb'));var querystring=require(_0x8895('0xc'));var Papa=require(_0x8895('0xd'));var Redis=require(_0x8895('0xe'));var authService=require(_0x8895('0xf'));var qs=require(_0x8895('0x10'));var as=require(_0x8895('0x11'));var hardwareService=require(_0x8895('0x12'));var logger=require(_0x8895('0x13'))('api');var utils=require(_0x8895('0x14'));var config=require(_0x8895('0x15'));var licenseUtil=require(_0x8895('0x16'));var db=require(_0x8895('0x17'))['db'];function respondWithStatusCode(_0x446e1a,_0xaf93bc){_0xaf93bc=_0xaf93bc||0xcc;return function(_0x5af0ef){if(_0x5af0ef){return _0x446e1a[_0x8895('0x18')](_0xaf93bc);}return _0x446e1a[_0x8895('0x19')](_0xaf93bc)[_0x8895('0x1a')]();};}function respondWithResult(_0x57d40a,_0x47b9fe){_0x47b9fe=_0x47b9fe||0xc8;return function(_0x9191b8){if(_0x9191b8){return _0x57d40a['status'](_0x47b9fe)[_0x8895('0x1b')](_0x9191b8);}};}function respondWithFilteredResult(_0x337101,_0x195789){return function(_0x3d7b59){if(_0x3d7b59){var _0x2c9d40=typeof _0x195789['offset']===_0x8895('0x1c')&&typeof _0x195789[_0x8895('0x1d')]===_0x8895('0x1c');var _0xcdd661=_0x3d7b59[_0x8895('0x1e')];var _0x1b5c82=_0x2c9d40?0x0:_0x195789[_0x8895('0x1f')];var _0x26cee0=_0x2c9d40?_0x3d7b59[_0x8895('0x1e')]:_0x195789[_0x8895('0x1f')]+_0x195789[_0x8895('0x1d')];var _0x6b8a16;if(_0x26cee0>=_0xcdd661){_0x26cee0=_0xcdd661;_0x6b8a16=0xc8;}else{_0x6b8a16=0xce;}_0x337101[_0x8895('0x19')](_0x6b8a16);return _0x337101['set']('Content-Range',_0x1b5c82+'-'+_0x26cee0+'/'+_0xcdd661)['json'](_0x3d7b59);}return null;};}function patchUpdates(_0x3daf43){return function(_0x456282){try{jsonpatch[_0x8895('0x20')](_0x456282,_0x3daf43,!![]);}catch(_0x29449a){return BPromise[_0x8895('0x21')](_0x29449a);}return _0x456282[_0x8895('0x22')]();};}function saveUpdates(_0x461346,_0xc1ce17){return function(_0x5219ca){if(_0x5219ca){return _0x5219ca[_0x8895('0x23')](_0x461346)[_0x8895('0x24')](function(_0x2a403){return _0x2a403;});}return null;};}function removeEntity(_0x1f71f3,_0x29223d){return function(_0x4d092d){if(_0x4d092d){return _0x4d092d['destroy']()[_0x8895('0x24')](function(){_0x1f71f3[_0x8895('0x19')](0xcc)[_0x8895('0x1a')]();});}};}function handleEntityNotFound(_0x24a376,_0x4fc150){return function(_0x25da11){if(!_0x25da11){_0x24a376[_0x8895('0x18')](0x194);}return _0x25da11;};}function handleError(_0x187a15,_0x5486a6){_0x5486a6=_0x5486a6||0x1f4;return function(_0x4aee03){logger[_0x8895('0x25')](_0x4aee03['stack']);if(_0x4aee03[_0x8895('0x26')]){delete _0x4aee03[_0x8895('0x26')];}_0x187a15[_0x8895('0x19')](_0x5486a6)[_0x8895('0x27')](_0x4aee03);};}function getMustacheRender(_0x153220,_0x5c03ea){return Mustache['render'](_0x153220,_[_0x8895('0x28')](_0x5c03ea[_0x8895('0x29')],{'contact':_0x5c03ea[_0x8895('0x2a')],'message':_0x5c03ea[_0x8895('0x2b')],'agent':_0x5c03ea[_0x8895('0x2c')],'interaction':_0x5c03ea['interaction'],'account':_0x5c03ea['account']}))||'';}exports[_0x8895('0x2d')]=function(_0x848a11,_0x1c16f6){var _0x29f565={},_0x1eabb6={},_0x52f2ac={'count':0x0,'rows':[]};var _0x1da939=_['map'](db[_0x8895('0x2e')]['rawAttributes'],function(_0x40ba14){return{'name':_0x40ba14[_0x8895('0x2f')],'type':_0x40ba14[_0x8895('0x30')][_0x8895('0x31')]};});_0x1eabb6[_0x8895('0x32')]=_['differenceBy'](_[_0x8895('0x33')](_0x1da939,_0x8895('0x26')),[_0x8895('0x26')]);_0x1eabb6[_0x8895('0x34')]=_[_0x8895('0x35')](_0x848a11['query']);_0x1eabb6[_0x8895('0x36')]=_['intersection'](_0x1eabb6[_0x8895('0x32')],_0x1eabb6['query']);_0x29f565[_0x8895('0x37')]=_[_0x8895('0x38')](_0x1eabb6[_0x8895('0x32')],qs[_0x8895('0x39')](_0x848a11[_0x8895('0x34')]['fields']));_0x29f565[_0x8895('0x37')]=_0x29f565['attributes'][_0x8895('0x3a')]?_0x29f565[_0x8895('0x37')]:_0x1eabb6[_0x8895('0x32')];if(!_0x848a11[_0x8895('0x34')][_0x8895('0x3b')](_0x8895('0x3c'))){_0x29f565['limit']=qs[_0x8895('0x1d')](_0x848a11[_0x8895('0x34')]['limit']);_0x29f565[_0x8895('0x1f')]=qs['offset'](_0x848a11[_0x8895('0x34')][_0x8895('0x1f')]);}_0x29f565['order']=qs[_0x8895('0x3d')](_0x848a11[_0x8895('0x34')]['sort']);_0x29f565['where']=qs[_0x8895('0x36')](_[_0x8895('0x3e')](_0x848a11[_0x8895('0x34')],_0x1eabb6[_0x8895('0x36')]),_0x1da939);if(_0x848a11[_0x8895('0x34')]['filter']){_0x29f565[_0x8895('0x3f')]=_[_0x8895('0x28')](_0x29f565[_0x8895('0x3f')],{'$or':_[_0x8895('0x33')](_0x1da939,function(_0x1d9e26){if(_0x1d9e26[_0x8895('0x30')]!=='VIRTUAL'){var _0x174be1={};_0x174be1[_0x1d9e26['name']]={'$like':'%'+_0x848a11[_0x8895('0x34')][_0x8895('0x40')]+'%'};return _0x174be1;}})});}_0x29f565=_['merge']({},_0x29f565,_0x848a11[_0x8895('0x41')]);var _0x4e8fbc={'where':_0x29f565[_0x8895('0x3f')]};return db['CmCustomField']['count'](_0x4e8fbc)['then'](function(_0x4cd625){_0x52f2ac['count']=_0x4cd625;if(_0x848a11['query'][_0x8895('0x42')]){_0x29f565[_0x8895('0x43')]=[{'all':!![]}];}return db['CmCustomField']['findAll'](_0x29f565);})[_0x8895('0x24')](function(_0x3d765d){_0x52f2ac['rows']=_0x3d765d;return _0x52f2ac;})[_0x8895('0x24')](respondWithFilteredResult(_0x1c16f6,_0x29f565))[_0x8895('0x44')](handleError(_0x1c16f6,null));};exports[_0x8895('0x45')]=function(_0x3b873b,_0x2d07d6){var _0x598ed5={'raw':!![],'where':{'id':_0x3b873b['params']['id']}},_0x549080={};_0x549080[_0x8895('0x32')]=_['keys'](db[_0x8895('0x2e')][_0x8895('0x46')]);_0x549080[_0x8895('0x34')]=_[_0x8895('0x35')](_0x3b873b['query']);_0x549080[_0x8895('0x36')]=_[_0x8895('0x38')](_0x549080[_0x8895('0x32')],_0x549080[_0x8895('0x34')]);_0x598ed5[_0x8895('0x37')]=_[_0x8895('0x38')](_0x549080[_0x8895('0x32')],qs[_0x8895('0x39')](_0x3b873b['query'][_0x8895('0x39')]));_0x598ed5[_0x8895('0x37')]=_0x598ed5['attributes'][_0x8895('0x3a')]?_0x598ed5['attributes']:_0x549080['model'];if(_0x3b873b[_0x8895('0x34')][_0x8895('0x42')]){_0x598ed5[_0x8895('0x43')]=[{'all':!![]}];}_0x598ed5=_['merge']({},_0x598ed5,_0x3b873b[_0x8895('0x41')]);return db['CmCustomField'][_0x8895('0x47')](_0x598ed5)[_0x8895('0x24')](handleEntityNotFound(_0x2d07d6,null))[_0x8895('0x24')](respondWithResult(_0x2d07d6,null))[_0x8895('0x44')](handleError(_0x2d07d6,null));};exports[_0x8895('0x23')]=function(_0x21c954,_0xebb0c4){if(_0x21c954['body']['id']){delete _0x21c954['body']['id'];}return db[_0x8895('0x2e')][_0x8895('0x47')]({'where':{'id':_0x21c954['params']['id']}})[_0x8895('0x24')](handleEntityNotFound(_0xebb0c4,null))['then'](saveUpdates(_0x21c954['body'],null))[_0x8895('0x24')](respondWithResult(_0xebb0c4,null))['catch'](handleError(_0xebb0c4,null));};exports[_0x8895('0x48')]=function(_0x2c2979,_0x43aada){return db[_0x8895('0x2e')][_0x8895('0x47')]({'where':{'id':_0x2c2979[_0x8895('0x49')]['id']}})[_0x8895('0x24')](handleEntityNotFound(_0x43aada,null))[_0x8895('0x24')](removeEntity(_0x43aada,null))['catch'](handleError(_0x43aada,null));};exports[_0x8895('0x4a')]=function(_0x3e25e7,_0x2f81f7){var _0x5a5bc6;return db[_0x8895('0x4b')][_0x8895('0x4c')](function(_0xd7ffeb){return db[_0x8895('0x2e')][_0x8895('0x4a')](_0x3e25e7[_0x8895('0x29')],{'transaction':_0xd7ffeb})[_0x8895('0x24')](function(_0x216e6e){_0x5a5bc6=_0x216e6e;var _0x13488f={'type':db[_0x8895('0x4d')]['TEXT'],'transaction':_0xd7ffeb};switch(_0x3e25e7[_0x8895('0x29')][_0x8895('0x30')]){case _0x8895('0x4e'):_0x13488f[_0x8895('0x30')]=db[_0x8895('0x4d')]['TEXT'];break;case _0x8895('0x4f'):_0x13488f[_0x8895('0x30')]=db[_0x8895('0x4d')][_0x8895('0x50')];break;case _0x8895('0x51'):_0x13488f['type']=db[_0x8895('0x4d')][_0x8895('0x52')];_0x13488f[_0x8895('0x53')]=![];break;default:}return db['sequelize'][_0x8895('0x54')][_0x8895('0x55')](_0x8895('0x56'),util['format'](_0x8895('0x57'),_0x5a5bc6['id']),_0x13488f);})[_0x8895('0x24')](function(){return _0x5a5bc6;});})['then'](respondWithResult(_0x2f81f7,0xc9))[_0x8895('0x44')](handleError(_0x2f81f7,null));};