daebc7150a2fe40945e5001e62faf0ea1bbe9fbd
[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 _0x32bf=['sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','index','map','fieldName','type','key','model','differenceBy','query','keys','filters','fields','attributes','nolimit','order','sort','where','pick','filter','options','CmCustomField','includeAll','include','findAll','rows','catch','show','rawAttributes','intersection','length','merge','find','body','params','create','sequelize','Sequelize','text','INTEGER','switch','defaultValue','queryInterface','cf_%d','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path'];(function(_0x5e138e,_0x2cf9af){var _0xe111fd=function(_0x5b2d3b){while(--_0x5b2d3b){_0x5e138e['push'](_0x5e138e['shift']());}};_0xe111fd(++_0x2cf9af);}(_0x32bf,0xf5));var _0xf32b=function(_0x9f235e,_0x2e381b){_0x9f235e=_0x9f235e-0x0;var _0x4d8492=_0x32bf[_0x9f235e];return _0x4d8492;};'use strict';var emlformat=require(_0xf32b('0x0'));var rimraf=require(_0xf32b('0x1'));var zipdir=require(_0xf32b('0x2'));var jsonpatch=require(_0xf32b('0x3'));var rp=require(_0xf32b('0x4'));var moment=require(_0xf32b('0x5'));var BPromise=require(_0xf32b('0x6'));var Mustache=require(_0xf32b('0x7'));var util=require(_0xf32b('0x8'));var path=require(_0xf32b('0x9'));var sox=require(_0xf32b('0xa'));var csv=require(_0xf32b('0xb'));var ejs=require(_0xf32b('0xc'));var fs=require('fs');var fs_extra=require(_0xf32b('0xd'));var _=require(_0xf32b('0xe'));var squel=require(_0xf32b('0xf'));var crypto=require(_0xf32b('0x10'));var jsforce=require('jsforce');var deskjs=require(_0xf32b('0x11'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xf32b('0x12'));var Redis=require('ioredis');var authService=require(_0xf32b('0x13'));var qs=require(_0xf32b('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf32b('0x15'));var logger=require(_0xf32b('0x16'))(_0xf32b('0x17'));var utils=require(_0xf32b('0x18'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xf32b('0x19'))['db'];function respondWithStatusCode(_0x430fc5,_0x2476a2){_0x2476a2=_0x2476a2||0xcc;return function(_0x3a3f7f){if(_0x3a3f7f){return _0x430fc5[_0xf32b('0x1a')](_0x2476a2);}return _0x430fc5['status'](_0x2476a2)['end']();};}function respondWithResult(_0x4fd49e,_0x27a5aa){_0x27a5aa=_0x27a5aa||0xc8;return function(_0x266909){if(_0x266909){return _0x4fd49e[_0xf32b('0x1b')](_0x27a5aa)[_0xf32b('0x1c')](_0x266909);}};}function respondWithFilteredResult(_0x2767ed,_0x5a89b6){return function(_0x408749){if(_0x408749){var _0xdf6f99=typeof _0x5a89b6['offset']===_0xf32b('0x1d')&&typeof _0x5a89b6[_0xf32b('0x1e')]===_0xf32b('0x1d');var _0x1ff2b3=_0x408749[_0xf32b('0x1f')];var _0x4803f0=_0xdf6f99?0x0:_0x5a89b6['offset'];var _0x1b008d=_0xdf6f99?_0x408749['count']:_0x5a89b6[_0xf32b('0x20')]+_0x5a89b6['limit'];var _0x220800;if(_0x1b008d>=_0x1ff2b3){_0x1b008d=_0x1ff2b3;_0x220800=0xc8;}else{_0x220800=0xce;}_0x2767ed[_0xf32b('0x1b')](_0x220800);return _0x2767ed['set'](_0xf32b('0x21'),_0x4803f0+'-'+_0x1b008d+'/'+_0x1ff2b3)['json'](_0x408749);}return null;};}function patchUpdates(_0x11e74c){return function(_0x482578){try{jsonpatch[_0xf32b('0x22')](_0x482578,_0x11e74c,!![]);}catch(_0x460f32){return BPromise[_0xf32b('0x23')](_0x460f32);}return _0x482578[_0xf32b('0x24')]();};}function saveUpdates(_0x3ff141,_0x144e6){return function(_0x1b6268){if(_0x1b6268){return _0x1b6268[_0xf32b('0x25')](_0x3ff141)['then'](function(_0x13df20){return _0x13df20;});}return null;};}function removeEntity(_0x21e910,_0x1b81db){return function(_0x1cba41){if(_0x1cba41){return _0x1cba41[_0xf32b('0x26')]()[_0xf32b('0x27')](function(){_0x21e910[_0xf32b('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0xc86a0,_0x4974d2){return function(_0x231899){if(!_0x231899){_0xc86a0[_0xf32b('0x1a')](0x194);}return _0x231899;};}function handleError(_0x34c99d,_0x20b7fe){_0x20b7fe=_0x20b7fe||0x1f4;return function(_0x2fc377){logger[_0xf32b('0x28')](_0x2fc377[_0xf32b('0x29')]);if(_0x2fc377[_0xf32b('0x2a')]){delete _0x2fc377['name'];}_0x34c99d[_0xf32b('0x1b')](_0x20b7fe)['send'](_0x2fc377);};}exports[_0xf32b('0x2b')]=function(_0x335314,_0xf2b907){var _0x33d438={},_0x432a3c={},_0x4acac4={'count':0x0,'rows':[]};var _0x647dbc=_[_0xf32b('0x2c')](db['CmCustomField']['rawAttributes'],function(_0x3c9e9b){return{'name':_0x3c9e9b[_0xf32b('0x2d')],'type':_0x3c9e9b[_0xf32b('0x2e')][_0xf32b('0x2f')]};});_0x432a3c[_0xf32b('0x30')]=_[_0xf32b('0x31')](_[_0xf32b('0x2c')](_0x647dbc,_0xf32b('0x2a')),[_0xf32b('0x2a')]);_0x432a3c[_0xf32b('0x32')]=_[_0xf32b('0x33')](_0x335314['query']);_0x432a3c[_0xf32b('0x34')]=_['intersection'](_0x432a3c[_0xf32b('0x30')],_0x432a3c[_0xf32b('0x32')]);_0x33d438['attributes']=_['intersection'](_0x432a3c[_0xf32b('0x30')],qs[_0xf32b('0x35')](_0x335314[_0xf32b('0x32')][_0xf32b('0x35')]));_0x33d438[_0xf32b('0x36')]=_0x33d438[_0xf32b('0x36')]['length']?_0x33d438[_0xf32b('0x36')]:_0x432a3c[_0xf32b('0x30')];if(!_0x335314[_0xf32b('0x32')]['hasOwnProperty'](_0xf32b('0x37'))){_0x33d438[_0xf32b('0x1e')]=qs['limit'](_0x335314['query']['limit']);_0x33d438[_0xf32b('0x20')]=qs[_0xf32b('0x20')](_0x335314[_0xf32b('0x32')][_0xf32b('0x20')]);}_0x33d438[_0xf32b('0x38')]=qs[_0xf32b('0x39')](_0x335314['query']['sort']);_0x33d438[_0xf32b('0x3a')]=qs[_0xf32b('0x34')](_[_0xf32b('0x3b')](_0x335314[_0xf32b('0x32')],_0x432a3c[_0xf32b('0x34')]),_0x647dbc);if(_0x335314[_0xf32b('0x32')][_0xf32b('0x3c')]){_0x33d438[_0xf32b('0x3a')]=_['merge'](_0x33d438['where'],{'$or':_[_0xf32b('0x2c')](_0x647dbc,function(_0x1671a4){if(_0x1671a4['type']!=='VIRTUAL'){var _0x712a4a={};_0x712a4a[_0x1671a4[_0xf32b('0x2a')]]={'$like':'%'+_0x335314[_0xf32b('0x32')][_0xf32b('0x3c')]+'%'};return _0x712a4a;}})});}_0x33d438=_['merge']({},_0x33d438,_0x335314[_0xf32b('0x3d')]);var _0x153292={'where':_0x33d438[_0xf32b('0x3a')]};return db[_0xf32b('0x3e')][_0xf32b('0x1f')](_0x153292)[_0xf32b('0x27')](function(_0x51987b){_0x4acac4['count']=_0x51987b;if(_0x335314[_0xf32b('0x32')][_0xf32b('0x3f')]){_0x33d438[_0xf32b('0x40')]=[{'all':!![]}];}return db[_0xf32b('0x3e')][_0xf32b('0x41')](_0x33d438);})['then'](function(_0x5dc2ea){_0x4acac4[_0xf32b('0x42')]=_0x5dc2ea;return _0x4acac4;})[_0xf32b('0x27')](respondWithFilteredResult(_0xf2b907,_0x33d438))[_0xf32b('0x43')](handleError(_0xf2b907,null));};exports[_0xf32b('0x44')]=function(_0x21f1d5,_0x341587){var _0x513d42={'raw':!![],'where':{'id':_0x21f1d5['params']['id']}},_0x427f7c={};_0x427f7c[_0xf32b('0x30')]=_[_0xf32b('0x33')](db[_0xf32b('0x3e')][_0xf32b('0x45')]);_0x427f7c[_0xf32b('0x32')]=_[_0xf32b('0x33')](_0x21f1d5[_0xf32b('0x32')]);_0x427f7c[_0xf32b('0x34')]=_[_0xf32b('0x46')](_0x427f7c[_0xf32b('0x30')],_0x427f7c['query']);_0x513d42[_0xf32b('0x36')]=_['intersection'](_0x427f7c[_0xf32b('0x30')],qs[_0xf32b('0x35')](_0x21f1d5[_0xf32b('0x32')][_0xf32b('0x35')]));_0x513d42[_0xf32b('0x36')]=_0x513d42[_0xf32b('0x36')][_0xf32b('0x47')]?_0x513d42[_0xf32b('0x36')]:_0x427f7c[_0xf32b('0x30')];if(_0x21f1d5[_0xf32b('0x32')][_0xf32b('0x3f')]){_0x513d42[_0xf32b('0x40')]=[{'all':!![]}];}_0x513d42=_[_0xf32b('0x48')]({},_0x513d42,_0x21f1d5[_0xf32b('0x3d')]);return db[_0xf32b('0x3e')][_0xf32b('0x49')](_0x513d42)['then'](handleEntityNotFound(_0x341587,null))[_0xf32b('0x27')](respondWithResult(_0x341587,null))['catch'](handleError(_0x341587,null));};exports[_0xf32b('0x25')]=function(_0x4e042a,_0x40a8eb){if(_0x4e042a['body']['id']){delete _0x4e042a[_0xf32b('0x4a')]['id'];}return db[_0xf32b('0x3e')][_0xf32b('0x49')]({'where':{'id':_0x4e042a[_0xf32b('0x4b')]['id']}})[_0xf32b('0x27')](handleEntityNotFound(_0x40a8eb,null))[_0xf32b('0x27')](saveUpdates(_0x4e042a[_0xf32b('0x4a')],null))['then'](respondWithResult(_0x40a8eb,null))['catch'](handleError(_0x40a8eb,null));};exports[_0xf32b('0x26')]=function(_0x397f6f,_0x5e41e7){return db[_0xf32b('0x3e')][_0xf32b('0x49')]({'where':{'id':_0x397f6f[_0xf32b('0x4b')]['id']}})['then'](handleEntityNotFound(_0x5e41e7,null))[_0xf32b('0x27')](removeEntity(_0x5e41e7,null))['catch'](handleError(_0x5e41e7,null));};exports[_0xf32b('0x4c')]=function(_0xe8eb55,_0x5da270){var _0x384d51;return db[_0xf32b('0x4d')]['transaction'](function(_0x226ed9){return db['CmCustomField'][_0xf32b('0x4c')](_0xe8eb55['body'],{'transaction':_0x226ed9})[_0xf32b('0x27')](function(_0x5b888d){_0x384d51=_0x5b888d;var _0x4cd76c={'type':db[_0xf32b('0x4e')]['TEXT'],'transaction':_0x226ed9};switch(_0xe8eb55[_0xf32b('0x4a')][_0xf32b('0x2e')]){case _0xf32b('0x4f'):_0x4cd76c[_0xf32b('0x2e')]=db[_0xf32b('0x4e')]['TEXT'];break;case'number':_0x4cd76c[_0xf32b('0x2e')]=db[_0xf32b('0x4e')][_0xf32b('0x50')];break;case _0xf32b('0x51'):_0x4cd76c['type']=db[_0xf32b('0x4e')]['BOOLEAN'];_0x4cd76c[_0xf32b('0x52')]=![];break;default:}return db['sequelize'][_0xf32b('0x53')]['addColumn']('cm_contacts',util['format'](_0xf32b('0x54'),_0x384d51['id']),_0x4cd76c);})[_0xf32b('0x27')](function(){return _0x384d51;});})[_0xf32b('0x27')](respondWithResult(_0x5da270,0xc9))['catch'](handleError(_0x5da270,null));};