9fa44f9b5acdf8173c3b85fa88672e54da449e07
[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 _0xc993=['cm_contacts','format','cf_%d','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','set','reject','save','update','then','error','stack','name','send','index','rawAttributes','fieldName','type','key','model','differenceBy','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','CmCustomField','count','includeAll','include','params','keys','find','catch','body','create','sequelize','transaction','Sequelize','TEXT','text','INTEGER','switch','BOOLEAN','queryInterface'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xc993,0x157));var _0x3c99=function(_0x50d66d,_0xfbcc5c){_0x50d66d=_0x50d66d-0x0;var _0x5deca3=_0xc993[_0x50d66d];return _0x5deca3;};'use strict';var emlformat=require(_0x3c99('0x0'));var rimraf=require(_0x3c99('0x1'));var zipdir=require(_0x3c99('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x3c99('0x3'));var moment=require(_0x3c99('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x3c99('0x5'));var util=require(_0x3c99('0x6'));var path=require(_0x3c99('0x7'));var sox=require(_0x3c99('0x8'));var csv=require(_0x3c99('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3c99('0xa'));var _=require(_0x3c99('0xb'));var squel=require(_0x3c99('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x3c99('0xd'));var Papa=require(_0x3c99('0xe'));var Redis=require(_0x3c99('0xf'));var authService=require(_0x3c99('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x3c99('0x11'));var hardwareService=require(_0x3c99('0x12'));var logger=require('../../config/logger')(_0x3c99('0x13'));var utils=require(_0x3c99('0x14'));var config=require(_0x3c99('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x3c99('0x16'))['db'];function respondWithStatusCode(_0x318d5b,_0x1f93e8){_0x1f93e8=_0x1f93e8||0xcc;return function(_0x454b56){if(_0x454b56){return _0x318d5b[_0x3c99('0x17')](_0x1f93e8);}return _0x318d5b[_0x3c99('0x18')](_0x1f93e8)[_0x3c99('0x19')]();};}function respondWithResult(_0x33de30,_0x51fa69){_0x51fa69=_0x51fa69||0xc8;return function(_0x16929d){if(_0x16929d){return _0x33de30[_0x3c99('0x18')](_0x51fa69)[_0x3c99('0x1a')](_0x16929d);}};}function respondWithFilteredResult(_0x440d75,_0x41c89e){return function(_0xf3d38f){if(_0xf3d38f){var _0x328d4f=typeof _0x41c89e[_0x3c99('0x1b')]==='undefined'&&typeof _0x41c89e[_0x3c99('0x1c')]===_0x3c99('0x1d');var _0x18ed7f=_0xf3d38f['count'];var _0x4ef874=_0x328d4f?0x0:_0x41c89e['offset'];var _0x2c1287=_0x328d4f?_0xf3d38f['count']:_0x41c89e[_0x3c99('0x1b')]+_0x41c89e[_0x3c99('0x1c')];var _0x5e9a15;if(_0x2c1287>=_0x18ed7f){_0x2c1287=_0x18ed7f;_0x5e9a15=0xc8;}else{_0x5e9a15=0xce;}_0x440d75[_0x3c99('0x18')](_0x5e9a15);return _0x440d75[_0x3c99('0x1e')]('Content-Range',_0x4ef874+'-'+_0x2c1287+'/'+_0x18ed7f)['json'](_0xf3d38f);}return null;};}function patchUpdates(_0x1aca34){return function(_0x2f3ef9){try{jsonpatch['apply'](_0x2f3ef9,_0x1aca34,!![]);}catch(_0x17f100){return BPromise[_0x3c99('0x1f')](_0x17f100);}return _0x2f3ef9[_0x3c99('0x20')]();};}function saveUpdates(_0x32e259,_0x3b5932){return function(_0x48c4af){if(_0x48c4af){return _0x48c4af[_0x3c99('0x21')](_0x32e259)[_0x3c99('0x22')](function(_0x113915){return _0x113915;});}return null;};}function removeEntity(_0x962ec1,_0x375d9a){return function(_0x516b85){if(_0x516b85){return _0x516b85['destroy']()[_0x3c99('0x22')](function(){_0x962ec1[_0x3c99('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x38e031,_0xc1fe21){return function(_0x8b2dd7){if(!_0x8b2dd7){_0x38e031[_0x3c99('0x17')](0x194);}return _0x8b2dd7;};}function handleError(_0x417307,_0x396af7){_0x396af7=_0x396af7||0x1f4;return function(_0x50479a){logger[_0x3c99('0x23')](_0x50479a[_0x3c99('0x24')]);if(_0x50479a[_0x3c99('0x25')]){delete _0x50479a['name'];}_0x417307[_0x3c99('0x18')](_0x396af7)[_0x3c99('0x26')](_0x50479a);};}exports[_0x3c99('0x27')]=function(_0x2c4b25,_0x4bc56a){var _0x4ecd14={},_0x4ca3fe={},_0x1374b3={'count':0x0,'rows':[]};var _0x3b1cf8=_['map'](db['CmCustomField'][_0x3c99('0x28')],function(_0x2c7084){return{'name':_0x2c7084[_0x3c99('0x29')],'type':_0x2c7084[_0x3c99('0x2a')][_0x3c99('0x2b')]};});_0x4ca3fe[_0x3c99('0x2c')]=_[_0x3c99('0x2d')](_[_0x3c99('0x2e')](_0x3b1cf8,_0x3c99('0x25')),[_0x3c99('0x25')]);_0x4ca3fe['query']=_['keys'](_0x2c4b25[_0x3c99('0x2f')]);_0x4ca3fe[_0x3c99('0x30')]=_[_0x3c99('0x31')](_0x4ca3fe[_0x3c99('0x2c')],_0x4ca3fe['query']);_0x4ecd14[_0x3c99('0x32')]=_['intersection'](_0x4ca3fe[_0x3c99('0x2c')],qs['fields'](_0x2c4b25[_0x3c99('0x2f')][_0x3c99('0x33')]));_0x4ecd14[_0x3c99('0x32')]=_0x4ecd14[_0x3c99('0x32')][_0x3c99('0x34')]?_0x4ecd14['attributes']:_0x4ca3fe[_0x3c99('0x2c')];if(!_0x2c4b25[_0x3c99('0x2f')][_0x3c99('0x35')](_0x3c99('0x36'))){_0x4ecd14[_0x3c99('0x1c')]=qs[_0x3c99('0x1c')](_0x2c4b25[_0x3c99('0x2f')][_0x3c99('0x1c')]);_0x4ecd14['offset']=qs[_0x3c99('0x1b')](_0x2c4b25[_0x3c99('0x2f')][_0x3c99('0x1b')]);}_0x4ecd14[_0x3c99('0x37')]=qs[_0x3c99('0x38')](_0x2c4b25[_0x3c99('0x2f')]['sort']);_0x4ecd14[_0x3c99('0x39')]=qs['filters'](_[_0x3c99('0x3a')](_0x2c4b25[_0x3c99('0x2f')],_0x4ca3fe[_0x3c99('0x30')]),_0x3b1cf8);if(_0x2c4b25[_0x3c99('0x2f')][_0x3c99('0x3b')]){_0x4ecd14['where']=_['merge'](_0x4ecd14['where'],{'$or':_[_0x3c99('0x2e')](_0x3b1cf8,function(_0x103030){if(_0x103030['type']!==_0x3c99('0x3c')){var _0x47d9ea={};_0x47d9ea[_0x103030[_0x3c99('0x25')]]={'$like':'%'+_0x2c4b25['query']['filter']+'%'};return _0x47d9ea;}})});}_0x4ecd14=_[_0x3c99('0x3d')]({},_0x4ecd14,_0x2c4b25[_0x3c99('0x3e')]);var _0x46bc0e={'where':_0x4ecd14[_0x3c99('0x39')]};return db[_0x3c99('0x3f')][_0x3c99('0x40')](_0x46bc0e)['then'](function(_0x5ce5bd){_0x1374b3[_0x3c99('0x40')]=_0x5ce5bd;if(_0x2c4b25[_0x3c99('0x2f')][_0x3c99('0x41')]){_0x4ecd14[_0x3c99('0x42')]=[{'all':!![]}];}return db[_0x3c99('0x3f')]['findAll'](_0x4ecd14);})['then'](function(_0x27c209){_0x1374b3['rows']=_0x27c209;return _0x1374b3;})[_0x3c99('0x22')](respondWithFilteredResult(_0x4bc56a,_0x4ecd14))['catch'](handleError(_0x4bc56a,null));};exports['show']=function(_0x1756db,_0xd5e319){var _0x46851b={'raw':!![],'where':{'id':_0x1756db[_0x3c99('0x43')]['id']}},_0x22b958={};_0x22b958[_0x3c99('0x2c')]=_[_0x3c99('0x44')](db['CmCustomField'][_0x3c99('0x28')]);_0x22b958[_0x3c99('0x2f')]=_['keys'](_0x1756db['query']);_0x22b958[_0x3c99('0x30')]=_['intersection'](_0x22b958[_0x3c99('0x2c')],_0x22b958[_0x3c99('0x2f')]);_0x46851b[_0x3c99('0x32')]=_[_0x3c99('0x31')](_0x22b958[_0x3c99('0x2c')],qs[_0x3c99('0x33')](_0x1756db[_0x3c99('0x2f')][_0x3c99('0x33')]));_0x46851b[_0x3c99('0x32')]=_0x46851b['attributes'][_0x3c99('0x34')]?_0x46851b[_0x3c99('0x32')]:_0x22b958['model'];if(_0x1756db[_0x3c99('0x2f')]['includeAll']){_0x46851b['include']=[{'all':!![]}];}_0x46851b=_['merge']({},_0x46851b,_0x1756db['options']);return db[_0x3c99('0x3f')][_0x3c99('0x45')](_0x46851b)[_0x3c99('0x22')](handleEntityNotFound(_0xd5e319,null))[_0x3c99('0x22')](respondWithResult(_0xd5e319,null))[_0x3c99('0x46')](handleError(_0xd5e319,null));};exports[_0x3c99('0x21')]=function(_0x1dfeac,_0xb839ec){if(_0x1dfeac[_0x3c99('0x47')]['id']){delete _0x1dfeac['body']['id'];}return db['CmCustomField']['find']({'where':{'id':_0x1dfeac[_0x3c99('0x43')]['id']}})[_0x3c99('0x22')](handleEntityNotFound(_0xb839ec,null))['then'](saveUpdates(_0x1dfeac['body'],null))[_0x3c99('0x22')](respondWithResult(_0xb839ec,null))[_0x3c99('0x46')](handleError(_0xb839ec,null));};exports['destroy']=function(_0x2119ee,_0x4f6d17){return db[_0x3c99('0x3f')][_0x3c99('0x45')]({'where':{'id':_0x2119ee[_0x3c99('0x43')]['id']}})[_0x3c99('0x22')](handleEntityNotFound(_0x4f6d17,null))[_0x3c99('0x22')](removeEntity(_0x4f6d17,null))[_0x3c99('0x46')](handleError(_0x4f6d17,null));};exports[_0x3c99('0x48')]=function(_0x210fd5,_0x3ff8d3){var _0x5a4dab;return db[_0x3c99('0x49')][_0x3c99('0x4a')](function(_0x276db5){return db['CmCustomField'][_0x3c99('0x48')](_0x210fd5[_0x3c99('0x47')],{'transaction':_0x276db5})[_0x3c99('0x22')](function(_0x69e9dd){_0x5a4dab=_0x69e9dd;var _0x5d79f5={'type':db[_0x3c99('0x4b')][_0x3c99('0x4c')],'transaction':_0x276db5};switch(_0x210fd5[_0x3c99('0x47')]['type']){case _0x3c99('0x4d'):_0x5d79f5[_0x3c99('0x2a')]=db['Sequelize']['TEXT'];break;case'number':_0x5d79f5[_0x3c99('0x2a')]=db['Sequelize'][_0x3c99('0x4e')];break;case _0x3c99('0x4f'):_0x5d79f5[_0x3c99('0x2a')]=db[_0x3c99('0x4b')][_0x3c99('0x50')];_0x5d79f5['defaultValue']=![];break;default:}return db['sequelize'][_0x3c99('0x51')]['addColumn'](_0x3c99('0x52'),util[_0x3c99('0x53')](_0x3c99('0x54'),_0x5a4dab['id']),_0x5d79f5);})['then'](function(){return _0x5a4dab;});})[_0x3c99('0x22')](respondWithResult(_0x3ff8d3,0xc9))[_0x3c99('0x46')](handleError(_0x3ff8d3,null));};