db6424aa6609b6c6b0ed5497c8b35d72a11b0f9f
[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 _0x6ed7=['request-promise','moment','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','offset','limit','count','set','Content-Range','apply','reject','update','then','error','stack','name','index','CmCustomField','rawAttributes','fieldName','type','key','model','differenceBy','query','keys','filters','attributes','intersection','fields','hasOwnProperty','order','sort','where','pick','map','VIRTUAL','filter','merge','options','include','findAll','rows','catch','params','includeAll','body','find','destroy','sequelize','transaction','create','Sequelize','TEXT','number','INTEGER','switch','BOOLEAN','queryInterface','addColumn','cm_contacts','format','cf_%d','eml-format','rimraf','zip-dir'];(function(_0x41cd82,_0x74bc41){var _0x36d9ac=function(_0x231998){while(--_0x231998){_0x41cd82['push'](_0x41cd82['shift']());}};_0x36d9ac(++_0x74bc41);}(_0x6ed7,0x102));var _0x76ed=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x6ed7[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x76ed('0x0'));var rimraf=require(_0x76ed('0x1'));var zipdir=require(_0x76ed('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x76ed('0x3'));var moment=require(_0x76ed('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x76ed('0x5'));var util=require('util');var path=require(_0x76ed('0x6'));var sox=require(_0x76ed('0x7'));var csv=require(_0x76ed('0x8'));var ejs=require(_0x76ed('0x9'));var fs=require('fs');var fs_extra=require(_0x76ed('0xa'));var _=require('lodash');var squel=require(_0x76ed('0xb'));var crypto=require(_0x76ed('0xc'));var jsforce=require(_0x76ed('0xd'));var deskjs=require(_0x76ed('0xe'));var toCsv=require('to-csv');var querystring=require(_0x76ed('0xf'));var Papa=require(_0x76ed('0x10'));var Redis=require('ioredis');var authService=require(_0x76ed('0x11'));var qs=require(_0x76ed('0x12'));var as=require(_0x76ed('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x76ed('0x14'))(_0x76ed('0x15'));var utils=require(_0x76ed('0x16'));var config=require(_0x76ed('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x76ed('0x18'))['db'];function respondWithStatusCode(_0x70ec78,_0x668db1){_0x668db1=_0x668db1||0xcc;return function(_0x2b5ae8){if(_0x2b5ae8){return _0x70ec78[_0x76ed('0x19')](_0x668db1);}return _0x70ec78['status'](_0x668db1)['end']();};}function respondWithResult(_0x5c959d,_0x867d24){_0x867d24=_0x867d24||0xc8;return function(_0x375f14){if(_0x375f14){return _0x5c959d[_0x76ed('0x1a')](_0x867d24)[_0x76ed('0x1b')](_0x375f14);}};}function respondWithFilteredResult(_0x2175f5,_0xa8e183){return function(_0x560e4c){if(_0x560e4c){var _0x1e600b=typeof _0xa8e183[_0x76ed('0x1c')]==='undefined'&&typeof _0xa8e183[_0x76ed('0x1d')]==='undefined';var _0xc29a00=_0x560e4c[_0x76ed('0x1e')];var _0x18ae7d=_0x1e600b?0x0:_0xa8e183['offset'];var _0x120581=_0x1e600b?_0x560e4c[_0x76ed('0x1e')]:_0xa8e183[_0x76ed('0x1c')]+_0xa8e183[_0x76ed('0x1d')];var _0x219f3c;if(_0x120581>=_0xc29a00){_0x120581=_0xc29a00;_0x219f3c=0xc8;}else{_0x219f3c=0xce;}_0x2175f5[_0x76ed('0x1a')](_0x219f3c);return _0x2175f5[_0x76ed('0x1f')](_0x76ed('0x20'),_0x18ae7d+'-'+_0x120581+'/'+_0xc29a00)[_0x76ed('0x1b')](_0x560e4c);}return null;};}function patchUpdates(_0x5eda7e){return function(_0x3f1b38){try{jsonpatch[_0x76ed('0x21')](_0x3f1b38,_0x5eda7e,!![]);}catch(_0x58e25d){return BPromise[_0x76ed('0x22')](_0x58e25d);}return _0x3f1b38['save']();};}function saveUpdates(_0x388f10,_0x40e981){return function(_0x58dff4){if(_0x58dff4){return _0x58dff4[_0x76ed('0x23')](_0x388f10)['then'](function(_0x4f1f61){return _0x4f1f61;});}return null;};}function removeEntity(_0x568f36,_0x3c9c4e){return function(_0x22a860){if(_0x22a860){return _0x22a860['destroy']()[_0x76ed('0x24')](function(){_0x568f36[_0x76ed('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0xced610,_0xca9eee){return function(_0x5bdafe){if(!_0x5bdafe){_0xced610[_0x76ed('0x19')](0x194);}return _0x5bdafe;};}function handleError(_0x3780d0,_0x31ea5e){_0x31ea5e=_0x31ea5e||0x1f4;return function(_0x1eb4c3){logger[_0x76ed('0x25')](_0x1eb4c3[_0x76ed('0x26')]);if(_0x1eb4c3[_0x76ed('0x27')]){delete _0x1eb4c3['name'];}_0x3780d0['status'](_0x31ea5e)['send'](_0x1eb4c3);};}exports[_0x76ed('0x28')]=function(_0x214a1e,_0x1cef15){var _0x541742={},_0x174e1={},_0x3fba2a={'count':0x0,'rows':[]};var _0x4a360f=_['map'](db[_0x76ed('0x29')][_0x76ed('0x2a')],function(_0x5ece4c){return{'name':_0x5ece4c[_0x76ed('0x2b')],'type':_0x5ece4c[_0x76ed('0x2c')][_0x76ed('0x2d')]};});_0x174e1[_0x76ed('0x2e')]=_[_0x76ed('0x2f')](_['map'](_0x4a360f,'name'),['name']);_0x174e1[_0x76ed('0x30')]=_[_0x76ed('0x31')](_0x214a1e[_0x76ed('0x30')]);_0x174e1[_0x76ed('0x32')]=_['intersection'](_0x174e1[_0x76ed('0x2e')],_0x174e1[_0x76ed('0x30')]);_0x541742[_0x76ed('0x33')]=_[_0x76ed('0x34')](_0x174e1[_0x76ed('0x2e')],qs[_0x76ed('0x35')](_0x214a1e[_0x76ed('0x30')][_0x76ed('0x35')]));_0x541742[_0x76ed('0x33')]=_0x541742[_0x76ed('0x33')]['length']?_0x541742[_0x76ed('0x33')]:_0x174e1[_0x76ed('0x2e')];if(!_0x214a1e[_0x76ed('0x30')][_0x76ed('0x36')]('nolimit')){_0x541742[_0x76ed('0x1d')]=qs[_0x76ed('0x1d')](_0x214a1e[_0x76ed('0x30')][_0x76ed('0x1d')]);_0x541742[_0x76ed('0x1c')]=qs['offset'](_0x214a1e[_0x76ed('0x30')]['offset']);}_0x541742[_0x76ed('0x37')]=qs[_0x76ed('0x38')](_0x214a1e['query'][_0x76ed('0x38')]);_0x541742[_0x76ed('0x39')]=qs[_0x76ed('0x32')](_[_0x76ed('0x3a')](_0x214a1e[_0x76ed('0x30')],_0x174e1[_0x76ed('0x32')]),_0x4a360f);if(_0x214a1e[_0x76ed('0x30')]['filter']){_0x541742['where']=_['merge'](_0x541742[_0x76ed('0x39')],{'$or':_[_0x76ed('0x3b')](_0x4a360f,function(_0x277a35){if(_0x277a35[_0x76ed('0x2c')]!==_0x76ed('0x3c')){var _0x1d5243={};_0x1d5243[_0x277a35[_0x76ed('0x27')]]={'$like':'%'+_0x214a1e[_0x76ed('0x30')][_0x76ed('0x3d')]+'%'};return _0x1d5243;}})});}_0x541742=_[_0x76ed('0x3e')]({},_0x541742,_0x214a1e[_0x76ed('0x3f')]);var _0x41dadd={'where':_0x541742[_0x76ed('0x39')]};return db[_0x76ed('0x29')]['count'](_0x41dadd)[_0x76ed('0x24')](function(_0x269cf0){_0x3fba2a[_0x76ed('0x1e')]=_0x269cf0;if(_0x214a1e['query']['includeAll']){_0x541742[_0x76ed('0x40')]=[{'all':!![]}];}return db[_0x76ed('0x29')][_0x76ed('0x41')](_0x541742);})[_0x76ed('0x24')](function(_0x296a09){_0x3fba2a[_0x76ed('0x42')]=_0x296a09;return _0x3fba2a;})[_0x76ed('0x24')](respondWithFilteredResult(_0x1cef15,_0x541742))[_0x76ed('0x43')](handleError(_0x1cef15,null));};exports['show']=function(_0x231b0a,_0x334b97){var _0x3b4e85={'raw':!![],'where':{'id':_0x231b0a[_0x76ed('0x44')]['id']}},_0x52f4c3={};_0x52f4c3[_0x76ed('0x2e')]=_[_0x76ed('0x31')](db[_0x76ed('0x29')]['rawAttributes']);_0x52f4c3[_0x76ed('0x30')]=_['keys'](_0x231b0a[_0x76ed('0x30')]);_0x52f4c3[_0x76ed('0x32')]=_[_0x76ed('0x34')](_0x52f4c3[_0x76ed('0x2e')],_0x52f4c3[_0x76ed('0x30')]);_0x3b4e85['attributes']=_[_0x76ed('0x34')](_0x52f4c3[_0x76ed('0x2e')],qs[_0x76ed('0x35')](_0x231b0a['query'][_0x76ed('0x35')]));_0x3b4e85[_0x76ed('0x33')]=_0x3b4e85[_0x76ed('0x33')]['length']?_0x3b4e85['attributes']:_0x52f4c3['model'];if(_0x231b0a[_0x76ed('0x30')][_0x76ed('0x45')]){_0x3b4e85[_0x76ed('0x40')]=[{'all':!![]}];}_0x3b4e85=_[_0x76ed('0x3e')]({},_0x3b4e85,_0x231b0a[_0x76ed('0x3f')]);return db[_0x76ed('0x29')]['find'](_0x3b4e85)[_0x76ed('0x24')](handleEntityNotFound(_0x334b97,null))[_0x76ed('0x24')](respondWithResult(_0x334b97,null))[_0x76ed('0x43')](handleError(_0x334b97,null));};exports[_0x76ed('0x23')]=function(_0x44b6d0,_0xf27ac2){if(_0x44b6d0[_0x76ed('0x46')]['id']){delete _0x44b6d0[_0x76ed('0x46')]['id'];}return db['CmCustomField'][_0x76ed('0x47')]({'where':{'id':_0x44b6d0['params']['id']}})['then'](handleEntityNotFound(_0xf27ac2,null))[_0x76ed('0x24')](saveUpdates(_0x44b6d0[_0x76ed('0x46')],null))[_0x76ed('0x24')](respondWithResult(_0xf27ac2,null))[_0x76ed('0x43')](handleError(_0xf27ac2,null));};exports[_0x76ed('0x48')]=function(_0x1c3e63,_0x356447){return db['CmCustomField'][_0x76ed('0x47')]({'where':{'id':_0x1c3e63['params']['id']}})['then'](handleEntityNotFound(_0x356447,null))['then'](removeEntity(_0x356447,null))[_0x76ed('0x43')](handleError(_0x356447,null));};exports['create']=function(_0x40a191,_0x2cdd16){var _0x4e756c;return db[_0x76ed('0x49')][_0x76ed('0x4a')](function(_0x215714){return db[_0x76ed('0x29')][_0x76ed('0x4b')](_0x40a191[_0x76ed('0x46')],{'transaction':_0x215714})['then'](function(_0x92e3f2){_0x4e756c=_0x92e3f2;var _0x39525f={'type':db[_0x76ed('0x4c')][_0x76ed('0x4d')],'transaction':_0x215714};switch(_0x40a191[_0x76ed('0x46')][_0x76ed('0x2c')]){case'text':_0x39525f[_0x76ed('0x2c')]=db[_0x76ed('0x4c')]['TEXT'];break;case _0x76ed('0x4e'):_0x39525f[_0x76ed('0x2c')]=db[_0x76ed('0x4c')][_0x76ed('0x4f')];break;case _0x76ed('0x50'):_0x39525f[_0x76ed('0x2c')]=db['Sequelize'][_0x76ed('0x51')];_0x39525f['defaultValue']=![];break;default:}return db[_0x76ed('0x49')][_0x76ed('0x52')][_0x76ed('0x53')](_0x76ed('0x54'),util[_0x76ed('0x55')](_0x76ed('0x56'),_0x4e756c['id']),_0x39525f);})['then'](function(){return _0x4e756c;});})[_0x76ed('0x24')](respondWithResult(_0x2cdd16,0xc9))[_0x76ed('0x43')](handleError(_0x2cdd16,null));};