e5acb89b496a68812f5af0f4ef45b8e493a06d66
[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 _0x5e17=['name','send','index','rawAttributes','fieldName','type','key','differenceBy','map','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','limit','order','sort','where','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','CmCustomField','options','find','body','create','sequelize','transaction','Sequelize','TEXT','text','number','INTEGER','defaultValue','cf_%d','html-pdf','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','json','count','offset','status','set','reject','save','update','then','error','stack'];(function(_0x263a74,_0xc31414){var _0x2aa86c=function(_0x382896){while(--_0x382896){_0x263a74['push'](_0x263a74['shift']());}};_0x2aa86c(++_0xc31414);}(_0x5e17,0x17a));var _0x75e1=function(_0x43aef7,_0x3aa217){_0x43aef7=_0x43aef7-0x0;var _0x5026a6=_0x5e17[_0x43aef7];return _0x5026a6;};'use strict';var pdf=require(_0x75e1('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x75e1('0x1'));var BPromise=require(_0x75e1('0x2'));var Mustache=require(_0x75e1('0x3'));var util=require(_0x75e1('0x4'));var path=require(_0x75e1('0x5'));var sox=require(_0x75e1('0x6'));var csv=require(_0x75e1('0x7'));var ejs=require(_0x75e1('0x8'));var fs=require('fs');var _=require(_0x75e1('0x9'));var squel=require(_0x75e1('0xa'));var crypto=require(_0x75e1('0xb'));var jsforce=require(_0x75e1('0xc'));var deskjs=require(_0x75e1('0xd'));var toCsv=require(_0x75e1('0x7'));var querystring=require(_0x75e1('0xe'));var Papa=require('papaparse');var Redis=require(_0x75e1('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x75e1('0x10'));var hardwareService=require(_0x75e1('0x11'));var logger=require(_0x75e1('0x12'))(_0x75e1('0x13'));var utils=require(_0x75e1('0x14'));var config=require(_0x75e1('0x15'));var licenseUtil=require(_0x75e1('0x16'));var db=require(_0x75e1('0x17'))['db'];function respondWithStatusCode(_0x4eb893,_0x3a4e57){_0x3a4e57=_0x3a4e57||0xcc;return function(_0x39b1a1){if(_0x39b1a1){return _0x4eb893[_0x75e1('0x18')](_0x3a4e57);}return _0x4eb893['status'](_0x3a4e57)[_0x75e1('0x19')]();};}function respondWithResult(_0x403bd9,_0x677339){_0x677339=_0x677339||0xc8;return function(_0x260f06){if(_0x260f06){return _0x403bd9['status'](_0x677339)[_0x75e1('0x1a')](_0x260f06);}};}function respondWithFilteredResult(_0x262ac4,_0xdd134a){return function(_0x37e351){if(_0x37e351){var _0x3b50fe=_0x37e351[_0x75e1('0x1b')],_0x125932=_0xdd134a[_0x75e1('0x1c')],_0x2fcad5=_0xdd134a[_0x75e1('0x1c')]+_0xdd134a['limit'],_0x56c741;if(_0x2fcad5>=_0x3b50fe){_0x2fcad5=_0x3b50fe;_0x56c741=0xc8;}else{_0x56c741=0xce;}_0x262ac4[_0x75e1('0x1d')](_0x56c741);return _0x262ac4[_0x75e1('0x1e')]('Content-Range',_0x125932+'-'+_0x2fcad5+'/'+_0x3b50fe)[_0x75e1('0x1a')](_0x37e351);}return null;};}function patchUpdates(_0x1581a7){return function(_0x3bbe34){try{jsonpatch['apply'](_0x3bbe34,_0x1581a7,!![]);}catch(_0x384553){return BPromise[_0x75e1('0x1f')](_0x384553);}return _0x3bbe34[_0x75e1('0x20')]();};}function saveUpdates(_0x180b61,_0x1ae04e){return function(_0x546806){if(_0x546806){return _0x546806[_0x75e1('0x21')](_0x180b61)['then'](function(_0x3597ef){return _0x3597ef;});}return null;};}function removeEntity(_0x2a473a,_0x2ba733){return function(_0x50cdc1){if(_0x50cdc1){return _0x50cdc1['destroy']()[_0x75e1('0x22')](function(){_0x2a473a[_0x75e1('0x1d')](0xcc)[_0x75e1('0x19')]();});}};}function handleEntityNotFound(_0x2a6547,_0x1f81e6){return function(_0x1d7c2e){if(!_0x1d7c2e){_0x2a6547[_0x75e1('0x18')](0x194);}return _0x1d7c2e;};}function handleError(_0x562c87,_0x372837){_0x372837=_0x372837||0x1f4;return function(_0x23c9d0){logger[_0x75e1('0x23')](_0x23c9d0[_0x75e1('0x24')]);if(_0x23c9d0[_0x75e1('0x25')]){delete _0x23c9d0[_0x75e1('0x25')];}_0x562c87[_0x75e1('0x1d')](_0x372837)[_0x75e1('0x26')](_0x23c9d0);};}exports[_0x75e1('0x27')]=function(_0x51f300,_0x3ecd50){var _0x262a55={},_0x288c9c={},_0x4da785={'count':0x0,'rows':[]};var _0x24ab1e=_['map'](db['CmCustomField'][_0x75e1('0x28')],function(_0x39064b){return{'name':_0x39064b[_0x75e1('0x29')],'type':_0x39064b[_0x75e1('0x2a')][_0x75e1('0x2b')]};});_0x288c9c['model']=_[_0x75e1('0x2c')](_[_0x75e1('0x2d')](_0x24ab1e,_0x75e1('0x25')),['name']);_0x288c9c[_0x75e1('0x2e')]=_[_0x75e1('0x2f')](_0x51f300['query']);_0x288c9c[_0x75e1('0x30')]=_[_0x75e1('0x31')](_0x288c9c[_0x75e1('0x32')],_0x288c9c[_0x75e1('0x2e')]);_0x262a55[_0x75e1('0x33')]=_['intersection'](_0x288c9c[_0x75e1('0x32')],qs[_0x75e1('0x34')](_0x51f300['query'][_0x75e1('0x34')]));_0x262a55[_0x75e1('0x33')]=_0x262a55[_0x75e1('0x33')][_0x75e1('0x35')]?_0x262a55[_0x75e1('0x33')]:_0x288c9c[_0x75e1('0x32')];if(!_0x51f300['query'][_0x75e1('0x36')]('nolimit')){_0x262a55['limit']=qs[_0x75e1('0x37')](_0x51f300[_0x75e1('0x2e')][_0x75e1('0x37')]);_0x262a55[_0x75e1('0x1c')]=qs[_0x75e1('0x1c')](_0x51f300[_0x75e1('0x2e')][_0x75e1('0x1c')]);}_0x262a55[_0x75e1('0x38')]=qs[_0x75e1('0x39')](_0x51f300[_0x75e1('0x2e')][_0x75e1('0x39')]);_0x262a55[_0x75e1('0x3a')]=qs[_0x75e1('0x30')](_['pick'](_0x51f300[_0x75e1('0x2e')],_0x288c9c[_0x75e1('0x30')]),_0x24ab1e);if(_0x51f300[_0x75e1('0x2e')][_0x75e1('0x3b')]){_0x262a55[_0x75e1('0x3a')]=_[_0x75e1('0x3c')](_0x262a55['where'],{'$or':_[_0x75e1('0x2d')](_0x24ab1e,function(_0x28219c){if(_0x28219c[_0x75e1('0x2a')]!==_0x75e1('0x3d')){var _0x1de4e6={};_0x1de4e6[_0x28219c[_0x75e1('0x25')]]={'$like':'%'+_0x51f300['query'][_0x75e1('0x3b')]+'%'};return _0x1de4e6;}})});}_0x262a55=_[_0x75e1('0x3c')]({},_0x262a55,_0x51f300['options']);var _0x15ddf8={'where':_0x262a55[_0x75e1('0x3a')]};return db['CmCustomField'][_0x75e1('0x1b')](_0x15ddf8)[_0x75e1('0x22')](function(_0x190371){_0x4da785[_0x75e1('0x1b')]=_0x190371;if(_0x51f300[_0x75e1('0x2e')][_0x75e1('0x3e')]){_0x262a55[_0x75e1('0x3f')]=[{'all':!![]}];}return db['CmCustomField'][_0x75e1('0x40')](_0x262a55);})[_0x75e1('0x22')](function(_0x5dc1de){_0x4da785[_0x75e1('0x41')]=_0x5dc1de;return _0x4da785;})['then'](respondWithFilteredResult(_0x3ecd50,_0x262a55))[_0x75e1('0x42')](handleError(_0x3ecd50,null));};exports[_0x75e1('0x43')]=function(_0x5c3d3f,_0x4ffc45){var _0x270148={'raw':!![],'where':{'id':_0x5c3d3f[_0x75e1('0x44')]['id']}},_0x5dd6cd={};_0x5dd6cd[_0x75e1('0x32')]=_[_0x75e1('0x2f')](db[_0x75e1('0x45')]['rawAttributes']);_0x5dd6cd[_0x75e1('0x2e')]=_[_0x75e1('0x2f')](_0x5c3d3f[_0x75e1('0x2e')]);_0x5dd6cd[_0x75e1('0x30')]=_[_0x75e1('0x31')](_0x5dd6cd['model'],_0x5dd6cd[_0x75e1('0x2e')]);_0x270148[_0x75e1('0x33')]=_[_0x75e1('0x31')](_0x5dd6cd[_0x75e1('0x32')],qs[_0x75e1('0x34')](_0x5c3d3f[_0x75e1('0x2e')][_0x75e1('0x34')]));_0x270148['attributes']=_0x270148[_0x75e1('0x33')]['length']?_0x270148[_0x75e1('0x33')]:_0x5dd6cd[_0x75e1('0x32')];if(_0x5c3d3f[_0x75e1('0x2e')]['includeAll']){_0x270148[_0x75e1('0x3f')]=[{'all':!![]}];}_0x270148=_['merge']({},_0x270148,_0x5c3d3f[_0x75e1('0x46')]);return db[_0x75e1('0x45')][_0x75e1('0x47')](_0x270148)[_0x75e1('0x22')](handleEntityNotFound(_0x4ffc45,null))['then'](respondWithResult(_0x4ffc45,null))[_0x75e1('0x42')](handleError(_0x4ffc45,null));};exports[_0x75e1('0x21')]=function(_0x42f263,_0x199be6){if(_0x42f263[_0x75e1('0x48')]['id']){delete _0x42f263[_0x75e1('0x48')]['id'];}return db[_0x75e1('0x45')][_0x75e1('0x47')]({'where':{'id':_0x42f263[_0x75e1('0x44')]['id']}})[_0x75e1('0x22')](handleEntityNotFound(_0x199be6,null))[_0x75e1('0x22')](saveUpdates(_0x42f263[_0x75e1('0x48')],null))[_0x75e1('0x22')](respondWithResult(_0x199be6,null))[_0x75e1('0x42')](handleError(_0x199be6,null));};exports['destroy']=function(_0x19bee2,_0x20179d){return db[_0x75e1('0x45')][_0x75e1('0x47')]({'where':{'id':_0x19bee2['params']['id']}})['then'](handleEntityNotFound(_0x20179d,null))['then'](removeEntity(_0x20179d,null))[_0x75e1('0x42')](handleError(_0x20179d,null));};exports[_0x75e1('0x49')]=function(_0x2c4faa,_0x4973b5){var _0x49de84;return db[_0x75e1('0x4a')][_0x75e1('0x4b')](function(_0x30816a){return db[_0x75e1('0x45')][_0x75e1('0x49')](_0x2c4faa[_0x75e1('0x48')],{'transaction':_0x30816a})[_0x75e1('0x22')](function(_0x12f13b){_0x49de84=_0x12f13b;var _0x572a9a={'type':db[_0x75e1('0x4c')][_0x75e1('0x4d')],'transaction':_0x30816a};switch(_0x2c4faa['body']['type']){case _0x75e1('0x4e'):_0x572a9a[_0x75e1('0x2a')]=db[_0x75e1('0x4c')][_0x75e1('0x4d')];break;case _0x75e1('0x4f'):_0x572a9a[_0x75e1('0x2a')]=db[_0x75e1('0x4c')][_0x75e1('0x50')];break;case'switch':_0x572a9a['type']=db['Sequelize']['BOOLEAN'];_0x572a9a[_0x75e1('0x51')]=![];break;default:}return db[_0x75e1('0x4a')]['queryInterface']['addColumn']('cm_contacts',util['format'](_0x75e1('0x52'),_0x49de84['id']),_0x572a9a);})[_0x75e1('0x22')](function(){return _0x49de84;});})[_0x75e1('0x22')](respondWithResult(_0x4973b5,0xc9))[_0x75e1('0x42')](handleError(_0x4973b5,null));};