98a400ddc905c1be56a08e11bb8a57e27c1374d9
[motion2.git] / server / api / disposition / disposition.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 _0xde63=['eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','Content-Range','reject','update','then','destroy','get','Dispositions','error','stack','name','send','index','map','Disposition','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','findAll','rows','catch','show','length','include','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','find','autoAssociation','params','html-pdf'];(function(_0x213f8f,_0x1ff03d){var _0x34df14=function(_0x5e1b05){while(--_0x5e1b05){_0x213f8f['push'](_0x213f8f['shift']());}};_0x34df14(++_0x1ff03d);}(_0xde63,0x1d9));var _0x3de6=function(_0x1ba43c,_0x5bd2e8){_0x1ba43c=_0x1ba43c-0x0;var _0x2f60eb=_0xde63[_0x1ba43c];return _0x2f60eb;};'use strict';var pdf=require(_0x3de6('0x0'));var emlformat=require(_0x3de6('0x1'));var rimraf=require(_0x3de6('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3de6('0x3'));var rp=require(_0x3de6('0x4'));var moment=require(_0x3de6('0x5'));var BPromise=require(_0x3de6('0x6'));var Mustache=require(_0x3de6('0x7'));var util=require(_0x3de6('0x8'));var path=require('path');var sox=require(_0x3de6('0x9'));var csv=require(_0x3de6('0xa'));var ejs=require(_0x3de6('0xb'));var fs=require('fs');var _=require(_0x3de6('0xc'));var squel=require(_0x3de6('0xd'));var crypto=require(_0x3de6('0xe'));var jsforce=require(_0x3de6('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x3de6('0xa'));var querystring=require(_0x3de6('0x10'));var Papa=require(_0x3de6('0x11'));var Redis=require(_0x3de6('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x3de6('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3de6('0x14'));var logger=require(_0x3de6('0x15'))(_0x3de6('0x16'));var utils=require('../../config/utils');var config=require(_0x3de6('0x17'));var db=require(_0x3de6('0x18'))['db'];function respondWithStatusCode(_0x30bc68,_0x36e4b1){_0x36e4b1=_0x36e4b1||0xcc;return function(_0x4c5cf4){if(_0x4c5cf4){return _0x30bc68[_0x3de6('0x19')](_0x36e4b1);}return _0x30bc68[_0x3de6('0x1a')](_0x36e4b1)[_0x3de6('0x1b')]();};}function respondWithResult(_0x2e818a,_0x26e715){_0x26e715=_0x26e715||0xc8;return function(_0x4e7735){if(_0x4e7735){return _0x2e818a[_0x3de6('0x1a')](_0x26e715)[_0x3de6('0x1c')](_0x4e7735);}};}function respondWithFilteredResult(_0x76005d,_0x470494){return function(_0x1e7f63){if(_0x1e7f63){var _0x5dd2b7=_0x1e7f63[_0x3de6('0x1d')],_0x354308=_0x470494[_0x3de6('0x1e')],_0x41163f=_0x470494[_0x3de6('0x1e')]+_0x470494['limit'],_0x12468d;if(_0x41163f>=_0x5dd2b7){_0x41163f=_0x5dd2b7;_0x12468d=0xc8;}else{_0x12468d=0xce;}_0x76005d['status'](_0x12468d);return _0x76005d['set'](_0x3de6('0x1f'),_0x354308+'-'+_0x41163f+'/'+_0x5dd2b7)[_0x3de6('0x1c')](_0x1e7f63);}return null;};}function patchUpdates(_0x43a39c){return function(_0x4c560f){try{jsonpatch['apply'](_0x4c560f,_0x43a39c,!![]);}catch(_0x1daa42){return BPromise[_0x3de6('0x20')](_0x1daa42);}return _0x4c560f['save']();};}function saveUpdates(_0x392ba4,_0x39f347){return function(_0x420e07){if(_0x420e07){return _0x420e07[_0x3de6('0x21')](_0x392ba4)[_0x3de6('0x22')](function(_0x5737aa){return _0x5737aa;});}return null;};}function removeEntity(_0x2ee67e,_0x35f478){return function(_0x501b1f){if(_0x501b1f){return _0x501b1f[_0x3de6('0x23')]()[_0x3de6('0x22')](function(){var _0x58d3b9=_0x501b1f[_0x3de6('0x24')]({'plain':!![]});var _0xb59db7=_0x3de6('0x25');return db['UserProfileResource'][_0x3de6('0x23')]({'where':{'type':_0xb59db7,'resourceId':_0x58d3b9['id']}})[_0x3de6('0x22')](function(){return _0x501b1f;});})[_0x3de6('0x22')](function(){_0x2ee67e['status'](0xcc)[_0x3de6('0x1b')]();});}};}function handleEntityNotFound(_0x3d1992,_0x4234a5){return function(_0x7d5902){if(!_0x7d5902){_0x3d1992[_0x3de6('0x19')](0x194);}return _0x7d5902;};}function handleError(_0x21fab4,_0x3a2f92){_0x3a2f92=_0x3a2f92||0x1f4;return function(_0x53b442){logger[_0x3de6('0x26')](_0x53b442[_0x3de6('0x27')]);if(_0x53b442['name']){delete _0x53b442[_0x3de6('0x28')];}_0x21fab4[_0x3de6('0x1a')](_0x3a2f92)[_0x3de6('0x29')](_0x53b442);};}exports[_0x3de6('0x2a')]=function(_0x36ffcd,_0x455bf6){var _0x188bb1={},_0x165a39={},_0x17eb37={'count':0x0,'rows':[]};var _0x3a1fd3=_[_0x3de6('0x2b')](db[_0x3de6('0x2c')][_0x3de6('0x2d')],function(_0x3cc61c){return{'name':_0x3cc61c[_0x3de6('0x2e')],'type':_0x3cc61c[_0x3de6('0x2f')][_0x3de6('0x30')]};});_0x165a39[_0x3de6('0x31')]=_[_0x3de6('0x2b')](_0x3a1fd3,_0x3de6('0x28'));_0x165a39[_0x3de6('0x32')]=_[_0x3de6('0x33')](_0x36ffcd[_0x3de6('0x32')]);_0x165a39[_0x3de6('0x34')]=_[_0x3de6('0x35')](_0x165a39[_0x3de6('0x31')],_0x165a39[_0x3de6('0x32')]);_0x188bb1[_0x3de6('0x36')]=_['intersection'](_0x165a39['model'],qs[_0x3de6('0x37')](_0x36ffcd[_0x3de6('0x32')][_0x3de6('0x37')]));_0x188bb1['attributes']=_0x188bb1['attributes']['length']?_0x188bb1[_0x3de6('0x36')]:_0x165a39['model'];if(!_0x36ffcd[_0x3de6('0x32')][_0x3de6('0x38')](_0x3de6('0x39'))){_0x188bb1['limit']=qs[_0x3de6('0x3a')](_0x36ffcd['query'][_0x3de6('0x3a')]);_0x188bb1[_0x3de6('0x1e')]=qs[_0x3de6('0x1e')](_0x36ffcd[_0x3de6('0x32')][_0x3de6('0x1e')]);}_0x188bb1[_0x3de6('0x3b')]=qs[_0x3de6('0x3c')](_0x36ffcd[_0x3de6('0x32')]['sort']);_0x188bb1[_0x3de6('0x3d')]=qs[_0x3de6('0x34')](_[_0x3de6('0x3e')](_0x36ffcd['query'],_0x165a39[_0x3de6('0x34')]),_0x3a1fd3);if(_0x36ffcd['query'][_0x3de6('0x3f')]){_0x188bb1[_0x3de6('0x3d')]=_[_0x3de6('0x40')](_0x188bb1[_0x3de6('0x3d')],{'$or':_[_0x3de6('0x2b')](_0x3a1fd3,function(_0xaa734e){if(_0xaa734e[_0x3de6('0x2f')]!==_0x3de6('0x41')){var _0x50b7db={};_0x50b7db[_0xaa734e[_0x3de6('0x28')]]={'$like':'%'+_0x36ffcd[_0x3de6('0x32')][_0x3de6('0x3f')]+'%'};return _0x50b7db;}})});}_0x188bb1=_[_0x3de6('0x40')]({},_0x188bb1,_0x36ffcd['options']);var _0x3d1275={'where':_0x188bb1[_0x3de6('0x3d')]};return db[_0x3de6('0x2c')]['count'](_0x3d1275)['then'](function(_0x1a5296){_0x17eb37['count']=_0x1a5296;if(_0x36ffcd[_0x3de6('0x32')][_0x3de6('0x42')]){_0x188bb1['include']=[{'all':!![]}];}return db[_0x3de6('0x2c')][_0x3de6('0x43')](_0x188bb1);})[_0x3de6('0x22')](function(_0x498d19){_0x17eb37[_0x3de6('0x44')]=_0x498d19;return _0x17eb37;})[_0x3de6('0x22')](respondWithFilteredResult(_0x455bf6,_0x188bb1))[_0x3de6('0x45')](handleError(_0x455bf6,null));};exports[_0x3de6('0x46')]=function(_0x53cb07,_0x19b114){var _0x1d47ed={'raw':!![],'where':{'id':_0x53cb07['params']['id']}},_0x44e46e={};_0x44e46e['model']=_['keys'](db['Disposition'][_0x3de6('0x2d')]);_0x44e46e[_0x3de6('0x32')]=_[_0x3de6('0x33')](_0x53cb07[_0x3de6('0x32')]);_0x44e46e[_0x3de6('0x34')]=_['intersection'](_0x44e46e[_0x3de6('0x31')],_0x44e46e['query']);_0x1d47ed[_0x3de6('0x36')]=_[_0x3de6('0x35')](_0x44e46e['model'],qs[_0x3de6('0x37')](_0x53cb07[_0x3de6('0x32')][_0x3de6('0x37')]));_0x1d47ed[_0x3de6('0x36')]=_0x1d47ed[_0x3de6('0x36')][_0x3de6('0x47')]?_0x1d47ed[_0x3de6('0x36')]:_0x44e46e[_0x3de6('0x31')];if(_0x53cb07[_0x3de6('0x32')][_0x3de6('0x42')]){_0x1d47ed[_0x3de6('0x48')]=[{'all':!![]}];}_0x1d47ed=_['merge']({},_0x1d47ed,_0x53cb07['options']);return db[_0x3de6('0x2c')]['find'](_0x1d47ed)[_0x3de6('0x22')](handleEntityNotFound(_0x19b114,null))['then'](respondWithResult(_0x19b114,null))['catch'](handleError(_0x19b114,null));};exports[_0x3de6('0x49')]=function(_0x25b19e,_0x4f29cc){return db['Disposition'][_0x3de6('0x49')](_0x25b19e[_0x3de6('0x4a')],{})['then'](function(_0x1842ff){var _0x29e3ec=_0x25b19e['user'][_0x3de6('0x24')]({'plain':!![]});if(!_0x29e3ec)throw new Error(_0x3de6('0x4b'));if(_0x29e3ec['role']==='user'){var _0x13b82a=_0x1842ff[_0x3de6('0x24')]({'plain':!![]});var _0x305e99=_0x3de6('0x25');return db['UserProfileSection'][_0x3de6('0x4c')]({'where':{'name':_0x305e99,'userProfileId':_0x29e3ec['userProfileId']},'raw':!![]})[_0x3de6('0x22')](function(_0x1035ed){if(_0x1035ed&&_0x1035ed[_0x3de6('0x4d')]===0x0){return db['UserProfileResource'][_0x3de6('0x49')]({'name':_0x13b82a[_0x3de6('0x28')],'resourceId':_0x13b82a['id'],'type':_0x1035ed['name'],'sectionId':_0x1035ed['id']},{})['then'](function(){return _0x1842ff;});}else{return _0x1842ff;}})[_0x3de6('0x45')](function(_0x26a62b){logger[_0x3de6('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x26a62b);throw _0x26a62b;});}return _0x1842ff;})[_0x3de6('0x22')](respondWithResult(_0x4f29cc,0xc9))[_0x3de6('0x45')](handleError(_0x4f29cc,null));};exports[_0x3de6('0x21')]=function(_0x49d2a0,_0x1a12b6){if(_0x49d2a0[_0x3de6('0x4a')]['id']){delete _0x49d2a0[_0x3de6('0x4a')]['id'];}return db['Disposition'][_0x3de6('0x4c')]({'where':{'id':_0x49d2a0[_0x3de6('0x4e')]['id']}})[_0x3de6('0x22')](handleEntityNotFound(_0x1a12b6,null))[_0x3de6('0x22')](saveUpdates(_0x49d2a0['body'],null))[_0x3de6('0x22')](respondWithResult(_0x1a12b6,null))[_0x3de6('0x45')](handleError(_0x1a12b6,null));};exports[_0x3de6('0x23')]=function(_0x195729,_0xfd0345){return db[_0x3de6('0x2c')][_0x3de6('0x4c')]({'where':{'id':_0x195729[_0x3de6('0x4e')]['id']}})['then'](handleEntityNotFound(_0xfd0345,null))[_0x3de6('0x22')](removeEntity(_0xfd0345,null))[_0x3de6('0x45')](handleError(_0xfd0345,null));};