da1da74f09f1fd2af831b9d55c0591ccbc9c4bb3
[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 _0xe49f=['create','sequelize','transaction','TEXT','text','number','Sequelize','switch','defaultValue','queryInterface','cm_contacts','cf_%d','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','end','json','undefined','count','offset','limit','status','set','apply','reject','then','destroy','error','stack','name','send','index','map','CmCustomField','type','key','model','differenceBy','keys','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','findAll','show','params','rawAttributes','length','includeAll','include','find','catch','update','body'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xe49f,0xbe));var _0xfe49=function(_0x113195,_0x22905b){_0x113195=_0x113195-0x0;var _0x527728=_0xe49f[_0x113195];return _0x527728;};'use strict';var emlformat=require(_0xfe49('0x0'));var rimraf=require(_0xfe49('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xfe49('0x2'));var rp=require(_0xfe49('0x3'));var moment=require(_0xfe49('0x4'));var BPromise=require(_0xfe49('0x5'));var Mustache=require('mustache');var util=require(_0xfe49('0x6'));var path=require(_0xfe49('0x7'));var sox=require(_0xfe49('0x8'));var csv=require(_0xfe49('0x9'));var ejs=require(_0xfe49('0xa'));var fs=require('fs');var fs_extra=require(_0xfe49('0xb'));var _=require(_0xfe49('0xc'));var squel=require(_0xfe49('0xd'));var crypto=require('crypto');var jsforce=require(_0xfe49('0xe'));var deskjs=require(_0xfe49('0xf'));var toCsv=require(_0xfe49('0x9'));var querystring=require(_0xfe49('0x10'));var Papa=require(_0xfe49('0x11'));var Redis=require(_0xfe49('0x12'));var authService=require(_0xfe49('0x13'));var qs=require(_0xfe49('0x14'));var as=require(_0xfe49('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xfe49('0x16'))(_0xfe49('0x17'));var utils=require('../../config/utils');var config=require(_0xfe49('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xfe49('0x19'))['db'];function respondWithStatusCode(_0x39cb26,_0x1cff19){_0x1cff19=_0x1cff19||0xcc;return function(_0xec14f2){if(_0xec14f2){return _0x39cb26[_0xfe49('0x1a')](_0x1cff19);}return _0x39cb26['status'](_0x1cff19)[_0xfe49('0x1b')]();};}function respondWithResult(_0x5d8e86,_0x953a42){_0x953a42=_0x953a42||0xc8;return function(_0x1a1e62){if(_0x1a1e62){return _0x5d8e86['status'](_0x953a42)[_0xfe49('0x1c')](_0x1a1e62);}};}function respondWithFilteredResult(_0x167c2a,_0x5df83b){return function(_0x5d7ed7){if(_0x5d7ed7){var _0x464810=typeof _0x5df83b['offset']==='undefined'&&typeof _0x5df83b['limit']===_0xfe49('0x1d');var _0x45080f=_0x5d7ed7[_0xfe49('0x1e')];var _0x223aa5=_0x464810?0x0:_0x5df83b[_0xfe49('0x1f')];var _0x46aa71=_0x464810?_0x5d7ed7[_0xfe49('0x1e')]:_0x5df83b[_0xfe49('0x1f')]+_0x5df83b[_0xfe49('0x20')];var _0x523fcd;if(_0x46aa71>=_0x45080f){_0x46aa71=_0x45080f;_0x523fcd=0xc8;}else{_0x523fcd=0xce;}_0x167c2a[_0xfe49('0x21')](_0x523fcd);return _0x167c2a[_0xfe49('0x22')]('Content-Range',_0x223aa5+'-'+_0x46aa71+'/'+_0x45080f)['json'](_0x5d7ed7);}return null;};}function patchUpdates(_0x334bda){return function(_0x5057b5){try{jsonpatch[_0xfe49('0x23')](_0x5057b5,_0x334bda,!![]);}catch(_0x1db5ae){return BPromise[_0xfe49('0x24')](_0x1db5ae);}return _0x5057b5['save']();};}function saveUpdates(_0x559b55,_0x38cbff){return function(_0x598f3c){if(_0x598f3c){return _0x598f3c['update'](_0x559b55)[_0xfe49('0x25')](function(_0x34a436){return _0x34a436;});}return null;};}function removeEntity(_0xeddce9,_0x35f3e2){return function(_0x279958){if(_0x279958){return _0x279958[_0xfe49('0x26')]()['then'](function(){_0xeddce9[_0xfe49('0x21')](0xcc)[_0xfe49('0x1b')]();});}};}function handleEntityNotFound(_0x337e35,_0x58b3a8){return function(_0x4ae424){if(!_0x4ae424){_0x337e35[_0xfe49('0x1a')](0x194);}return _0x4ae424;};}function handleError(_0x3198b8,_0x27c82c){_0x27c82c=_0x27c82c||0x1f4;return function(_0xb31d82){logger[_0xfe49('0x27')](_0xb31d82[_0xfe49('0x28')]);if(_0xb31d82[_0xfe49('0x29')]){delete _0xb31d82[_0xfe49('0x29')];}_0x3198b8[_0xfe49('0x21')](_0x27c82c)[_0xfe49('0x2a')](_0xb31d82);};}exports[_0xfe49('0x2b')]=function(_0x1c9b6f,_0x268c39){var _0xa929a7={},_0x1c7543={},_0x4340ef={'count':0x0,'rows':[]};var _0x4da325=_[_0xfe49('0x2c')](db[_0xfe49('0x2d')]['rawAttributes'],function(_0x2ef374){return{'name':_0x2ef374['fieldName'],'type':_0x2ef374[_0xfe49('0x2e')][_0xfe49('0x2f')]};});_0x1c7543[_0xfe49('0x30')]=_[_0xfe49('0x31')](_[_0xfe49('0x2c')](_0x4da325,_0xfe49('0x29')),[_0xfe49('0x29')]);_0x1c7543['query']=_[_0xfe49('0x32')](_0x1c9b6f[_0xfe49('0x33')]);_0x1c7543[_0xfe49('0x34')]=_['intersection'](_0x1c7543['model'],_0x1c7543['query']);_0xa929a7['attributes']=_[_0xfe49('0x35')](_0x1c7543['model'],qs[_0xfe49('0x36')](_0x1c9b6f['query'][_0xfe49('0x36')]));_0xa929a7[_0xfe49('0x37')]=_0xa929a7[_0xfe49('0x37')]['length']?_0xa929a7[_0xfe49('0x37')]:_0x1c7543['model'];if(!_0x1c9b6f['query'][_0xfe49('0x38')](_0xfe49('0x39'))){_0xa929a7[_0xfe49('0x20')]=qs[_0xfe49('0x20')](_0x1c9b6f[_0xfe49('0x33')][_0xfe49('0x20')]);_0xa929a7[_0xfe49('0x1f')]=qs['offset'](_0x1c9b6f['query'][_0xfe49('0x1f')]);}_0xa929a7[_0xfe49('0x3a')]=qs[_0xfe49('0x3b')](_0x1c9b6f['query'][_0xfe49('0x3b')]);_0xa929a7[_0xfe49('0x3c')]=qs[_0xfe49('0x34')](_[_0xfe49('0x3d')](_0x1c9b6f['query'],_0x1c7543['filters']),_0x4da325);if(_0x1c9b6f[_0xfe49('0x33')][_0xfe49('0x3e')]){_0xa929a7[_0xfe49('0x3c')]=_[_0xfe49('0x3f')](_0xa929a7['where'],{'$or':_[_0xfe49('0x2c')](_0x4da325,function(_0x443f0d){if(_0x443f0d[_0xfe49('0x2e')]!==_0xfe49('0x40')){var _0x1fca43={};_0x1fca43[_0x443f0d['name']]={'$like':'%'+_0x1c9b6f[_0xfe49('0x33')][_0xfe49('0x3e')]+'%'};return _0x1fca43;}})});}_0xa929a7=_[_0xfe49('0x3f')]({},_0xa929a7,_0x1c9b6f[_0xfe49('0x41')]);var _0x4ca529={'where':_0xa929a7[_0xfe49('0x3c')]};return db[_0xfe49('0x2d')]['count'](_0x4ca529)[_0xfe49('0x25')](function(_0x427bee){_0x4340ef[_0xfe49('0x1e')]=_0x427bee;if(_0x1c9b6f[_0xfe49('0x33')]['includeAll']){_0xa929a7['include']=[{'all':!![]}];}return db[_0xfe49('0x2d')][_0xfe49('0x42')](_0xa929a7);})['then'](function(_0xc3fd43){_0x4340ef['rows']=_0xc3fd43;return _0x4340ef;})[_0xfe49('0x25')](respondWithFilteredResult(_0x268c39,_0xa929a7))['catch'](handleError(_0x268c39,null));};exports[_0xfe49('0x43')]=function(_0x43d77d,_0x55d3c8){var _0x5a87bd={'raw':!![],'where':{'id':_0x43d77d[_0xfe49('0x44')]['id']}},_0x286575={};_0x286575[_0xfe49('0x30')]=_['keys'](db[_0xfe49('0x2d')][_0xfe49('0x45')]);_0x286575[_0xfe49('0x33')]=_[_0xfe49('0x32')](_0x43d77d[_0xfe49('0x33')]);_0x286575['filters']=_[_0xfe49('0x35')](_0x286575[_0xfe49('0x30')],_0x286575[_0xfe49('0x33')]);_0x5a87bd[_0xfe49('0x37')]=_[_0xfe49('0x35')](_0x286575[_0xfe49('0x30')],qs[_0xfe49('0x36')](_0x43d77d[_0xfe49('0x33')][_0xfe49('0x36')]));_0x5a87bd[_0xfe49('0x37')]=_0x5a87bd[_0xfe49('0x37')][_0xfe49('0x46')]?_0x5a87bd['attributes']:_0x286575['model'];if(_0x43d77d[_0xfe49('0x33')][_0xfe49('0x47')]){_0x5a87bd[_0xfe49('0x48')]=[{'all':!![]}];}_0x5a87bd=_['merge']({},_0x5a87bd,_0x43d77d[_0xfe49('0x41')]);return db[_0xfe49('0x2d')][_0xfe49('0x49')](_0x5a87bd)[_0xfe49('0x25')](handleEntityNotFound(_0x55d3c8,null))[_0xfe49('0x25')](respondWithResult(_0x55d3c8,null))[_0xfe49('0x4a')](handleError(_0x55d3c8,null));};exports[_0xfe49('0x4b')]=function(_0x1850ef,_0x439259){if(_0x1850ef[_0xfe49('0x4c')]['id']){delete _0x1850ef[_0xfe49('0x4c')]['id'];}return db[_0xfe49('0x2d')]['find']({'where':{'id':_0x1850ef[_0xfe49('0x44')]['id']}})[_0xfe49('0x25')](handleEntityNotFound(_0x439259,null))[_0xfe49('0x25')](saveUpdates(_0x1850ef['body'],null))['then'](respondWithResult(_0x439259,null))[_0xfe49('0x4a')](handleError(_0x439259,null));};exports[_0xfe49('0x26')]=function(_0x60b12c,_0x3bdbef){return db[_0xfe49('0x2d')][_0xfe49('0x49')]({'where':{'id':_0x60b12c[_0xfe49('0x44')]['id']}})['then'](handleEntityNotFound(_0x3bdbef,null))[_0xfe49('0x25')](removeEntity(_0x3bdbef,null))[_0xfe49('0x4a')](handleError(_0x3bdbef,null));};exports[_0xfe49('0x4d')]=function(_0x2f55a5,_0x2a5464){var _0x2dc3a8;return db[_0xfe49('0x4e')][_0xfe49('0x4f')](function(_0x3ebe24){return db['CmCustomField'][_0xfe49('0x4d')](_0x2f55a5[_0xfe49('0x4c')],{'transaction':_0x3ebe24})[_0xfe49('0x25')](function(_0x3ffcac){_0x2dc3a8=_0x3ffcac;var _0x1418eb={'type':db['Sequelize'][_0xfe49('0x50')],'transaction':_0x3ebe24};switch(_0x2f55a5[_0xfe49('0x4c')][_0xfe49('0x2e')]){case _0xfe49('0x51'):_0x1418eb[_0xfe49('0x2e')]=db['Sequelize'][_0xfe49('0x50')];break;case _0xfe49('0x52'):_0x1418eb[_0xfe49('0x2e')]=db[_0xfe49('0x53')]['INTEGER'];break;case _0xfe49('0x54'):_0x1418eb[_0xfe49('0x2e')]=db[_0xfe49('0x53')]['BOOLEAN'];_0x1418eb[_0xfe49('0x55')]=![];break;default:}return db[_0xfe49('0x4e')][_0xfe49('0x56')]['addColumn'](_0xfe49('0x57'),util['format'](_0xfe49('0x58'),_0x2dc3a8['id']),_0x1418eb);})[_0xfe49('0x25')](function(){return _0x2dc3a8;});})[_0xfe49('0x25')](respondWithResult(_0x2a5464,0xc9))['catch'](handleError(_0x2a5464,null));};