7b01a0407abe2e236ba36a0d4268debe58dd8942
[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 _0xf67c=['merge','options','findAll','rows','catch','show','params','fields','includeAll','include','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','UserProfileResource','body','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/utils','sendStatus','status','end','json','offset','limit','Content-Range','reject','save','update','then','destroy','get','Dispositions','error','stack','name','send','index','map','Disposition','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','sort','pick','filter','where','type','VIRTUAL'];(function(_0x1d664a,_0x149a34){var _0x335345=function(_0x461fac){while(--_0x461fac){_0x1d664a['push'](_0x1d664a['shift']());}};_0x335345(++_0x149a34);}(_0xf67c,0x19e));var _0xcf67=function(_0x250b21,_0x1dc47e){_0x250b21=_0x250b21-0x0;var _0x5ea20a=_0xf67c[_0x250b21];return _0x5ea20a;};'use strict';var emlformat=require(_0xcf67('0x0'));var rimraf=require(_0xcf67('0x1'));var zipdir=require(_0xcf67('0x2'));var jsonpatch=require(_0xcf67('0x3'));var rp=require('request-promise');var moment=require(_0xcf67('0x4'));var BPromise=require(_0xcf67('0x5'));var Mustache=require('mustache');var util=require(_0xcf67('0x6'));var path=require(_0xcf67('0x7'));var sox=require('sox');var csv=require(_0xcf67('0x8'));var ejs=require(_0xcf67('0x9'));var fs=require('fs');var fs_extra=require(_0xcf67('0xa'));var _=require('lodash');var squel=require(_0xcf67('0xb'));var crypto=require(_0xcf67('0xc'));var jsforce=require(_0xcf67('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xcf67('0x8'));var querystring=require(_0xcf67('0xe'));var Papa=require(_0xcf67('0xf'));var Redis=require(_0xcf67('0x10'));var authService=require(_0xcf67('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xcf67('0x12'));var logger=require('../../config/logger')(_0xcf67('0x13'));var utils=require(_0xcf67('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1d62b6,_0x50c5a6){_0x50c5a6=_0x50c5a6||0xcc;return function(_0x20ba48){if(_0x20ba48){return _0x1d62b6[_0xcf67('0x15')](_0x50c5a6);}return _0x1d62b6[_0xcf67('0x16')](_0x50c5a6)[_0xcf67('0x17')]();};}function respondWithResult(_0x21464a,_0x8549f8){_0x8549f8=_0x8549f8||0xc8;return function(_0x526fbb){if(_0x526fbb){return _0x21464a[_0xcf67('0x16')](_0x8549f8)[_0xcf67('0x18')](_0x526fbb);}};}function respondWithFilteredResult(_0x20d9bc,_0x349167){return function(_0x4a9f2d){if(_0x4a9f2d){var _0x19c329=_0x4a9f2d['count'],_0x3d3fc7=_0x349167['offset'],_0x16797c=_0x349167[_0xcf67('0x19')]+_0x349167[_0xcf67('0x1a')],_0x5cd2a1;if(_0x16797c>=_0x19c329){_0x16797c=_0x19c329;_0x5cd2a1=0xc8;}else{_0x5cd2a1=0xce;}_0x20d9bc[_0xcf67('0x16')](_0x5cd2a1);return _0x20d9bc['set'](_0xcf67('0x1b'),_0x3d3fc7+'-'+_0x16797c+'/'+_0x19c329)[_0xcf67('0x18')](_0x4a9f2d);}return null;};}function patchUpdates(_0x3579da){return function(_0x52b3e8){try{jsonpatch['apply'](_0x52b3e8,_0x3579da,!![]);}catch(_0x4557c6){return BPromise[_0xcf67('0x1c')](_0x4557c6);}return _0x52b3e8[_0xcf67('0x1d')]();};}function saveUpdates(_0x319970,_0x300674){return function(_0x25479f){if(_0x25479f){return _0x25479f[_0xcf67('0x1e')](_0x319970)[_0xcf67('0x1f')](function(_0x48eb61){return _0x48eb61;});}return null;};}function removeEntity(_0x164cea,_0x7aaf06){return function(_0x235627){if(_0x235627){return _0x235627[_0xcf67('0x20')]()[_0xcf67('0x1f')](function(){var _0x5b88e4=_0x235627[_0xcf67('0x21')]({'plain':!![]});var _0x24af2b=_0xcf67('0x22');return db['UserProfileResource']['destroy']({'where':{'type':_0x24af2b,'resourceId':_0x5b88e4['id']}})[_0xcf67('0x1f')](function(){return _0x235627;});})[_0xcf67('0x1f')](function(){_0x164cea[_0xcf67('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4a15a8,_0x32cdd0){return function(_0x3cda60){if(!_0x3cda60){_0x4a15a8[_0xcf67('0x15')](0x194);}return _0x3cda60;};}function handleError(_0x5240e5,_0x3940ab){_0x3940ab=_0x3940ab||0x1f4;return function(_0xcd0c00){logger[_0xcf67('0x23')](_0xcd0c00[_0xcf67('0x24')]);if(_0xcd0c00[_0xcf67('0x25')]){delete _0xcd0c00[_0xcf67('0x25')];}_0x5240e5[_0xcf67('0x16')](_0x3940ab)[_0xcf67('0x26')](_0xcd0c00);};}exports[_0xcf67('0x27')]=function(_0x5d297f,_0x39cf98){var _0x4a6e97={},_0x32540a={},_0xb1c6b5={'count':0x0,'rows':[]};var _0xcc3cbd=_[_0xcf67('0x28')](db[_0xcf67('0x29')][_0xcf67('0x2a')],function(_0x4a9ab8){return{'name':_0x4a9ab8[_0xcf67('0x2b')],'type':_0x4a9ab8['type'][_0xcf67('0x2c')]};});_0x32540a[_0xcf67('0x2d')]=_[_0xcf67('0x28')](_0xcc3cbd,_0xcf67('0x25'));_0x32540a['query']=_[_0xcf67('0x2e')](_0x5d297f[_0xcf67('0x2f')]);_0x32540a[_0xcf67('0x30')]=_['intersection'](_0x32540a[_0xcf67('0x2d')],_0x32540a['query']);_0x4a6e97['attributes']=_[_0xcf67('0x31')](_0x32540a['model'],qs['fields'](_0x5d297f['query']['fields']));_0x4a6e97[_0xcf67('0x32')]=_0x4a6e97[_0xcf67('0x32')][_0xcf67('0x33')]?_0x4a6e97['attributes']:_0x32540a['model'];if(!_0x5d297f[_0xcf67('0x2f')][_0xcf67('0x34')](_0xcf67('0x35'))){_0x4a6e97['limit']=qs[_0xcf67('0x1a')](_0x5d297f[_0xcf67('0x2f')][_0xcf67('0x1a')]);_0x4a6e97['offset']=qs[_0xcf67('0x19')](_0x5d297f[_0xcf67('0x2f')]['offset']);}_0x4a6e97['order']=qs['sort'](_0x5d297f[_0xcf67('0x2f')][_0xcf67('0x36')]);_0x4a6e97['where']=qs[_0xcf67('0x30')](_[_0xcf67('0x37')](_0x5d297f[_0xcf67('0x2f')],_0x32540a[_0xcf67('0x30')]),_0xcc3cbd);if(_0x5d297f[_0xcf67('0x2f')][_0xcf67('0x38')]){_0x4a6e97['where']=_['merge'](_0x4a6e97[_0xcf67('0x39')],{'$or':_[_0xcf67('0x28')](_0xcc3cbd,function(_0x275fd3){if(_0x275fd3[_0xcf67('0x3a')]!==_0xcf67('0x3b')){var _0x90cd53={};_0x90cd53[_0x275fd3[_0xcf67('0x25')]]={'$like':'%'+_0x5d297f[_0xcf67('0x2f')][_0xcf67('0x38')]+'%'};return _0x90cd53;}})});}_0x4a6e97=_[_0xcf67('0x3c')]({},_0x4a6e97,_0x5d297f[_0xcf67('0x3d')]);var _0x15933d={'where':_0x4a6e97[_0xcf67('0x39')]};return db[_0xcf67('0x29')]['count'](_0x15933d)['then'](function(_0xe55783){_0xb1c6b5['count']=_0xe55783;if(_0x5d297f[_0xcf67('0x2f')]['includeAll']){_0x4a6e97['include']=[{'all':!![]}];}return db[_0xcf67('0x29')][_0xcf67('0x3e')](_0x4a6e97);})['then'](function(_0x1894d6){_0xb1c6b5[_0xcf67('0x3f')]=_0x1894d6;return _0xb1c6b5;})['then'](respondWithFilteredResult(_0x39cf98,_0x4a6e97))[_0xcf67('0x40')](handleError(_0x39cf98,null));};exports[_0xcf67('0x41')]=function(_0x3e63c5,_0x1b48db){var _0x4826ad={'raw':!![],'where':{'id':_0x3e63c5[_0xcf67('0x42')]['id']}},_0x4cfc82={};_0x4cfc82['model']=_[_0xcf67('0x2e')](db[_0xcf67('0x29')]['rawAttributes']);_0x4cfc82['query']=_[_0xcf67('0x2e')](_0x3e63c5[_0xcf67('0x2f')]);_0x4cfc82[_0xcf67('0x30')]=_[_0xcf67('0x31')](_0x4cfc82['model'],_0x4cfc82[_0xcf67('0x2f')]);_0x4826ad['attributes']=_['intersection'](_0x4cfc82['model'],qs[_0xcf67('0x43')](_0x3e63c5[_0xcf67('0x2f')][_0xcf67('0x43')]));_0x4826ad[_0xcf67('0x32')]=_0x4826ad[_0xcf67('0x32')][_0xcf67('0x33')]?_0x4826ad[_0xcf67('0x32')]:_0x4cfc82[_0xcf67('0x2d')];if(_0x3e63c5['query'][_0xcf67('0x44')]){_0x4826ad[_0xcf67('0x45')]=[{'all':!![]}];}_0x4826ad=_[_0xcf67('0x3c')]({},_0x4826ad,_0x3e63c5[_0xcf67('0x3d')]);return db['Disposition'][_0xcf67('0x46')](_0x4826ad)['then'](handleEntityNotFound(_0x1b48db,null))['then'](respondWithResult(_0x1b48db,null))[_0xcf67('0x40')](handleError(_0x1b48db,null));};exports[_0xcf67('0x47')]=function(_0x29edca,_0x187fb9){return db[_0xcf67('0x29')][_0xcf67('0x47')](_0x29edca['body'],{})[_0xcf67('0x1f')](function(_0x5c275c){var _0x1d36bb=_0x29edca['user']['get']({'plain':!![]});if(!_0x1d36bb)throw new Error(_0xcf67('0x48'));if(_0x1d36bb[_0xcf67('0x49')]===_0xcf67('0x4a')){var _0x280a97=_0x5c275c[_0xcf67('0x21')]({'plain':!![]});var _0x34a7b0=_0xcf67('0x22');return db[_0xcf67('0x4b')][_0xcf67('0x46')]({'where':{'name':_0x34a7b0,'userProfileId':_0x1d36bb[_0xcf67('0x4c')]},'raw':!![]})['then'](function(_0x43f114){if(_0x43f114&&_0x43f114['autoAssociation']===0x0){return db[_0xcf67('0x4d')]['create']({'name':_0x280a97[_0xcf67('0x25')],'resourceId':_0x280a97['id'],'type':_0x43f114[_0xcf67('0x25')],'sectionId':_0x43f114['id']},{})[_0xcf67('0x1f')](function(){return _0x5c275c;});}else{return _0x5c275c;}})['catch'](function(_0x15ba72){logger[_0xcf67('0x23')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x15ba72);throw _0x15ba72;});}return _0x5c275c;})[_0xcf67('0x1f')](respondWithResult(_0x187fb9,0xc9))[_0xcf67('0x40')](handleError(_0x187fb9,null));};exports['update']=function(_0x3cf4c5,_0x3f0038){if(_0x3cf4c5[_0xcf67('0x4e')]['id']){delete _0x3cf4c5[_0xcf67('0x4e')]['id'];}return db[_0xcf67('0x29')][_0xcf67('0x46')]({'where':{'id':_0x3cf4c5[_0xcf67('0x42')]['id']}})[_0xcf67('0x1f')](handleEntityNotFound(_0x3f0038,null))['then'](saveUpdates(_0x3cf4c5[_0xcf67('0x4e')],null))[_0xcf67('0x1f')](respondWithResult(_0x3f0038,null))[_0xcf67('0x40')](handleError(_0x3f0038,null));};exports[_0xcf67('0x20')]=function(_0x48dcb4,_0x3b600d){return db[_0xcf67('0x29')][_0xcf67('0x46')]({'where':{'id':_0x48dcb4['params']['id']}})[_0xcf67('0x1f')](handleEntityNotFound(_0x3b600d,null))['then'](removeEntity(_0x3b600d,null))[_0xcf67('0x40')](handleError(_0x3b600d,null));};