30c2ed0f14676975aa614c11a6cbac7497dd5083
[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 _0xb958=['Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','find','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','Dispositions','sendStatus','error','stack','name','send','index','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','Disposition','rows','catch','show','params','options','create','body'];(function(_0x1b6186,_0x1ec7f2){var _0x186121=function(_0x1748a8){while(--_0x1748a8){_0x1b6186['push'](_0x1b6186['shift']());}};_0x186121(++_0x1ec7f2);}(_0xb958,0x1bb));var _0x8b95=function(_0x201043,_0x57e46b){_0x201043=_0x201043-0x0;var _0x29e5f2=_0xb958[_0x201043];return _0x29e5f2;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x8b95('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8b95('0x1'));var moment=require(_0x8b95('0x2'));var BPromise=require(_0x8b95('0x3'));var Mustache=require(_0x8b95('0x4'));var util=require(_0x8b95('0x5'));var path=require(_0x8b95('0x6'));var sox=require(_0x8b95('0x7'));var csv=require(_0x8b95('0x8'));var ejs=require(_0x8b95('0x9'));var fs=require('fs');var fs_extra=require(_0x8b95('0xa'));var _=require(_0x8b95('0xb'));var squel=require('squel');var crypto=require(_0x8b95('0xc'));var jsforce=require(_0x8b95('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x8b95('0xe'));var Papa=require('papaparse');var Redis=require(_0x8b95('0xf'));var authService=require(_0x8b95('0x10'));var qs=require(_0x8b95('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8b95('0x12'));var logger=require(_0x8b95('0x13'))('api');var utils=require(_0x8b95('0x14'));var config=require(_0x8b95('0x15'));var licenseUtil=require(_0x8b95('0x16'));var db=require(_0x8b95('0x17'))['db'];function respondWithStatusCode(_0x25800f,_0x532274){_0x532274=_0x532274||0xcc;return function(_0x2bf626){if(_0x2bf626){return _0x25800f['sendStatus'](_0x532274);}return _0x25800f['status'](_0x532274)[_0x8b95('0x18')]();};}function respondWithResult(_0x1430c8,_0x3f78a3){_0x3f78a3=_0x3f78a3||0xc8;return function(_0x4e8fe9){if(_0x4e8fe9){return _0x1430c8[_0x8b95('0x19')](_0x3f78a3)[_0x8b95('0x1a')](_0x4e8fe9);}};}function respondWithFilteredResult(_0x439f30,_0x5a7aba){return function(_0x5d19da){if(_0x5d19da){var _0x34b7ec=typeof _0x5a7aba[_0x8b95('0x1b')]===_0x8b95('0x1c')&&typeof _0x5a7aba[_0x8b95('0x1d')]==='undefined';var _0x1982ea=_0x5d19da[_0x8b95('0x1e')];var _0x4df1e4=_0x34b7ec?0x0:_0x5a7aba[_0x8b95('0x1b')];var _0x210ace=_0x34b7ec?_0x5d19da[_0x8b95('0x1e')]:_0x5a7aba[_0x8b95('0x1b')]+_0x5a7aba[_0x8b95('0x1d')];var _0x455912;if(_0x210ace>=_0x1982ea){_0x210ace=_0x1982ea;_0x455912=0xc8;}else{_0x455912=0xce;}_0x439f30[_0x8b95('0x19')](_0x455912);return _0x439f30[_0x8b95('0x1f')](_0x8b95('0x20'),_0x4df1e4+'-'+_0x210ace+'/'+_0x1982ea)[_0x8b95('0x1a')](_0x5d19da);}return null;};}function patchUpdates(_0x5d3120){return function(_0xa3288d){try{jsonpatch[_0x8b95('0x21')](_0xa3288d,_0x5d3120,!![]);}catch(_0xa4675f){return BPromise[_0x8b95('0x22')](_0xa4675f);}return _0xa3288d[_0x8b95('0x23')]();};}function saveUpdates(_0x3a0b,_0x4ae69e){return function(_0x23a159){if(_0x23a159){return _0x23a159[_0x8b95('0x24')](_0x3a0b)[_0x8b95('0x25')](function(_0xfce04a){return _0xfce04a;});}return null;};}function removeEntity(_0x43a8f6,_0x508da6){return function(_0x3df9a3){if(_0x3df9a3){return _0x3df9a3[_0x8b95('0x26')]()[_0x8b95('0x25')](function(){var _0x3a25d3=_0x3df9a3[_0x8b95('0x27')]({'plain':!![]});var _0x224de3=_0x8b95('0x28');return db['UserProfileResource'][_0x8b95('0x26')]({'where':{'type':_0x224de3,'resourceId':_0x3a25d3['id']}})['then'](function(){return _0x3df9a3;});})[_0x8b95('0x25')](function(){_0x43a8f6[_0x8b95('0x19')](0xcc)[_0x8b95('0x18')]();});}};}function handleEntityNotFound(_0x1201bc,_0x4688be){return function(_0x57cd60){if(!_0x57cd60){_0x1201bc[_0x8b95('0x29')](0x194);}return _0x57cd60;};}function handleError(_0x224101,_0x162293){_0x162293=_0x162293||0x1f4;return function(_0x39dc40){logger[_0x8b95('0x2a')](_0x39dc40[_0x8b95('0x2b')]);if(_0x39dc40['name']){delete _0x39dc40[_0x8b95('0x2c')];}_0x224101[_0x8b95('0x19')](_0x162293)[_0x8b95('0x2d')](_0x39dc40);};}exports[_0x8b95('0x2e')]=function(_0x2a55dd,_0x59f4df){var _0x4875a7={},_0x50ee52={},_0x2cc87b={'count':0x0,'rows':[]};var _0x38f200=_['map'](db['Disposition'][_0x8b95('0x2f')],function(_0x242c84){return{'name':_0x242c84[_0x8b95('0x30')],'type':_0x242c84[_0x8b95('0x31')][_0x8b95('0x32')]};});_0x50ee52[_0x8b95('0x33')]=_[_0x8b95('0x34')](_0x38f200,'name');_0x50ee52[_0x8b95('0x35')]=_[_0x8b95('0x36')](_0x2a55dd['query']);_0x50ee52[_0x8b95('0x37')]=_[_0x8b95('0x38')](_0x50ee52['model'],_0x50ee52[_0x8b95('0x35')]);_0x4875a7['attributes']=_[_0x8b95('0x38')](_0x50ee52[_0x8b95('0x33')],qs[_0x8b95('0x39')](_0x2a55dd[_0x8b95('0x35')]['fields']));_0x4875a7['attributes']=_0x4875a7[_0x8b95('0x3a')][_0x8b95('0x3b')]?_0x4875a7[_0x8b95('0x3a')]:_0x50ee52[_0x8b95('0x33')];if(!_0x2a55dd[_0x8b95('0x35')][_0x8b95('0x3c')](_0x8b95('0x3d'))){_0x4875a7[_0x8b95('0x1d')]=qs['limit'](_0x2a55dd['query'][_0x8b95('0x1d')]);_0x4875a7[_0x8b95('0x1b')]=qs['offset'](_0x2a55dd['query'][_0x8b95('0x1b')]);}_0x4875a7[_0x8b95('0x3e')]=qs['sort'](_0x2a55dd[_0x8b95('0x35')][_0x8b95('0x3f')]);_0x4875a7[_0x8b95('0x40')]=qs[_0x8b95('0x37')](_[_0x8b95('0x41')](_0x2a55dd[_0x8b95('0x35')],_0x50ee52['filters']),_0x38f200);if(_0x2a55dd[_0x8b95('0x35')][_0x8b95('0x42')]){_0x4875a7[_0x8b95('0x40')]=_[_0x8b95('0x43')](_0x4875a7[_0x8b95('0x40')],{'$or':_['map'](_0x38f200,function(_0x4dcf54){if(_0x4dcf54[_0x8b95('0x31')]!==_0x8b95('0x44')){var _0x580bad={};_0x580bad[_0x4dcf54['name']]={'$like':'%'+_0x2a55dd[_0x8b95('0x35')][_0x8b95('0x42')]+'%'};return _0x580bad;}})});}_0x4875a7=_[_0x8b95('0x43')]({},_0x4875a7,_0x2a55dd['options']);var _0x59602d={'where':_0x4875a7[_0x8b95('0x40')]};return db['Disposition']['count'](_0x59602d)[_0x8b95('0x25')](function(_0x7b9684){_0x2cc87b[_0x8b95('0x1e')]=_0x7b9684;if(_0x2a55dd['query'][_0x8b95('0x45')]){_0x4875a7[_0x8b95('0x46')]=[{'all':!![]}];}return db[_0x8b95('0x47')]['findAll'](_0x4875a7);})['then'](function(_0xa76431){_0x2cc87b[_0x8b95('0x48')]=_0xa76431;return _0x2cc87b;})[_0x8b95('0x25')](respondWithFilteredResult(_0x59f4df,_0x4875a7))[_0x8b95('0x49')](handleError(_0x59f4df,null));};exports[_0x8b95('0x4a')]=function(_0x35d23d,_0x45fbca){var _0x8f3b36={'raw':!![],'where':{'id':_0x35d23d[_0x8b95('0x4b')]['id']}},_0x3e419f={};_0x3e419f[_0x8b95('0x33')]=_[_0x8b95('0x36')](db[_0x8b95('0x47')][_0x8b95('0x2f')]);_0x3e419f[_0x8b95('0x35')]=_['keys'](_0x35d23d[_0x8b95('0x35')]);_0x3e419f[_0x8b95('0x37')]=_[_0x8b95('0x38')](_0x3e419f['model'],_0x3e419f[_0x8b95('0x35')]);_0x8f3b36[_0x8b95('0x3a')]=_[_0x8b95('0x38')](_0x3e419f['model'],qs[_0x8b95('0x39')](_0x35d23d[_0x8b95('0x35')][_0x8b95('0x39')]));_0x8f3b36[_0x8b95('0x3a')]=_0x8f3b36[_0x8b95('0x3a')]['length']?_0x8f3b36['attributes']:_0x3e419f[_0x8b95('0x33')];if(_0x35d23d[_0x8b95('0x35')][_0x8b95('0x45')]){_0x8f3b36[_0x8b95('0x46')]=[{'all':!![]}];}_0x8f3b36=_[_0x8b95('0x43')]({},_0x8f3b36,_0x35d23d[_0x8b95('0x4c')]);return db['Disposition']['find'](_0x8f3b36)[_0x8b95('0x25')](handleEntityNotFound(_0x45fbca,null))[_0x8b95('0x25')](respondWithResult(_0x45fbca,null))[_0x8b95('0x49')](handleError(_0x45fbca,null));};exports[_0x8b95('0x4d')]=function(_0x1e393a,_0x28487f){return db[_0x8b95('0x47')][_0x8b95('0x4d')](_0x1e393a[_0x8b95('0x4e')],{})['then'](function(_0x4d4000){var _0x285e20=_0x1e393a['user'][_0x8b95('0x27')]({'plain':!![]});if(!_0x285e20)throw new Error(_0x8b95('0x4f'));if(_0x285e20[_0x8b95('0x50')]===_0x8b95('0x51')){var _0x35df66=_0x4d4000[_0x8b95('0x27')]({'plain':!![]});var _0x14c4ca='Dispositions';return db[_0x8b95('0x52')][_0x8b95('0x53')]({'where':{'name':_0x14c4ca,'userProfileId':_0x285e20[_0x8b95('0x54')]},'raw':!![]})[_0x8b95('0x25')](function(_0x23ada8){if(_0x23ada8&&_0x23ada8['autoAssociation']===0x0){return db[_0x8b95('0x55')][_0x8b95('0x4d')]({'name':_0x35df66['name'],'resourceId':_0x35df66['id'],'type':_0x23ada8[_0x8b95('0x2c')],'sectionId':_0x23ada8['id']},{})[_0x8b95('0x25')](function(){return _0x4d4000;});}else{return _0x4d4000;}})[_0x8b95('0x49')](function(_0x15cd23){logger[_0x8b95('0x2a')](_0x8b95('0x56'),_0x15cd23);throw _0x15cd23;});}return _0x4d4000;})[_0x8b95('0x25')](respondWithResult(_0x28487f,0xc9))[_0x8b95('0x49')](handleError(_0x28487f,null));};exports[_0x8b95('0x24')]=function(_0x201a36,_0x19f54e){if(_0x201a36[_0x8b95('0x4e')]['id']){delete _0x201a36[_0x8b95('0x4e')]['id'];}return db[_0x8b95('0x47')][_0x8b95('0x53')]({'where':{'id':_0x201a36['params']['id']}})[_0x8b95('0x25')](handleEntityNotFound(_0x19f54e,null))[_0x8b95('0x25')](saveUpdates(_0x201a36['body'],null))[_0x8b95('0x25')](respondWithResult(_0x19f54e,null))[_0x8b95('0x49')](handleError(_0x19f54e,null));};exports['destroy']=function(_0x465b9c,_0x32d930){return db['Disposition'][_0x8b95('0x53')]({'where':{'id':_0x465b9c['params']['id']}})[_0x8b95('0x25')](handleEntityNotFound(_0x32d930,null))[_0x8b95('0x25')](removeEntity(_0x32d930,null))[_0x8b95('0x49')](handleError(_0x32d930,null));};