Built motion from commit 25580385.|2.6.2
[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 _0x7a59=['to-csv','ejs','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','get','Dispositions','UserProfileResource','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','Disposition','includeAll','include','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','fast-json-patch','request-promise','util','path','sox'];(function(_0x26b80e,_0x5c9333){var _0x84a8a8=function(_0x2e5b4a){while(--_0x2e5b4a){_0x26b80e['push'](_0x26b80e['shift']());}};_0x84a8a8(++_0x5c9333);}(_0x7a59,0x199));var _0x97a5=function(_0x29db36,_0x410ae9){_0x29db36=_0x29db36-0x0;var _0x234e87=_0x7a59[_0x29db36];return _0x234e87;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x97a5('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x97a5('0x1'));var rp=require(_0x97a5('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x97a5('0x3'));var path=require(_0x97a5('0x4'));var sox=require(_0x97a5('0x5'));var csv=require(_0x97a5('0x6'));var ejs=require(_0x97a5('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x97a5('0x8'));var squel=require('squel');var crypto=require(_0x97a5('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x97a5('0xa'));var toCsv=require(_0x97a5('0x6'));var querystring=require(_0x97a5('0xb'));var Papa=require(_0x97a5('0xc'));var Redis=require(_0x97a5('0xd'));var authService=require(_0x97a5('0xe'));var qs=require(_0x97a5('0xf'));var as=require(_0x97a5('0x10'));var hardwareService=require(_0x97a5('0x11'));var logger=require(_0x97a5('0x12'))(_0x97a5('0x13'));var utils=require(_0x97a5('0x14'));var config=require(_0x97a5('0x15'));var licenseUtil=require(_0x97a5('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1943ba,_0x440c7d){_0x440c7d=_0x440c7d||0xcc;return function(_0x41784d){if(_0x41784d){return _0x1943ba[_0x97a5('0x17')](_0x440c7d);}return _0x1943ba[_0x97a5('0x18')](_0x440c7d)[_0x97a5('0x19')]();};}function respondWithResult(_0x385f59,_0x10ee25){_0x10ee25=_0x10ee25||0xc8;return function(_0x2e08ce){if(_0x2e08ce){return _0x385f59[_0x97a5('0x18')](_0x10ee25)[_0x97a5('0x1a')](_0x2e08ce);}};}function respondWithFilteredResult(_0x2804ef,_0x25350b){return function(_0x46bc6f){if(_0x46bc6f){var _0x5526c2=typeof _0x25350b[_0x97a5('0x1b')]===_0x97a5('0x1c')&&typeof _0x25350b[_0x97a5('0x1d')]===_0x97a5('0x1c');var _0x55d4c1=_0x46bc6f[_0x97a5('0x1e')];var _0x56d565=_0x5526c2?0x0:_0x25350b[_0x97a5('0x1b')];var _0x48c6ab=_0x5526c2?_0x46bc6f[_0x97a5('0x1e')]:_0x25350b[_0x97a5('0x1b')]+_0x25350b[_0x97a5('0x1d')];var _0x45de2d;if(_0x48c6ab>=_0x55d4c1){_0x48c6ab=_0x55d4c1;_0x45de2d=0xc8;}else{_0x45de2d=0xce;}_0x2804ef[_0x97a5('0x18')](_0x45de2d);return _0x2804ef[_0x97a5('0x1f')](_0x97a5('0x20'),_0x56d565+'-'+_0x48c6ab+'/'+_0x55d4c1)[_0x97a5('0x1a')](_0x46bc6f);}return null;};}function patchUpdates(_0xa9d6af){return function(_0xcb897f){try{jsonpatch[_0x97a5('0x21')](_0xcb897f,_0xa9d6af,!![]);}catch(_0x2a3ded){return BPromise['reject'](_0x2a3ded);}return _0xcb897f[_0x97a5('0x22')]();};}function saveUpdates(_0x191dc2,_0xfb12ba){return function(_0x4e3e0e){if(_0x4e3e0e){return _0x4e3e0e[_0x97a5('0x23')](_0x191dc2)[_0x97a5('0x24')](function(_0x3ac6f6){return _0x3ac6f6;});}return null;};}function removeEntity(_0xf6ad5,_0x1c87e8){return function(_0x28b48c){if(_0x28b48c){return _0x28b48c[_0x97a5('0x25')]()[_0x97a5('0x24')](function(){var _0x1b2b8a=_0x28b48c[_0x97a5('0x26')]({'plain':!![]});var _0x57eda0=_0x97a5('0x27');return db[_0x97a5('0x28')][_0x97a5('0x25')]({'where':{'type':_0x57eda0,'resourceId':_0x1b2b8a['id']}})[_0x97a5('0x24')](function(){return _0x28b48c;});})[_0x97a5('0x24')](function(){_0xf6ad5['status'](0xcc)[_0x97a5('0x19')]();});}};}function handleEntityNotFound(_0x39fb13,_0x6996){return function(_0xaf0198){if(!_0xaf0198){_0x39fb13[_0x97a5('0x17')](0x194);}return _0xaf0198;};}function handleError(_0x906f84,_0x386e76){_0x386e76=_0x386e76||0x1f4;return function(_0x27a5ec){logger[_0x97a5('0x29')](_0x27a5ec[_0x97a5('0x2a')]);if(_0x27a5ec[_0x97a5('0x2b')]){delete _0x27a5ec[_0x97a5('0x2b')];}_0x906f84[_0x97a5('0x18')](_0x386e76)[_0x97a5('0x2c')](_0x27a5ec);};}exports[_0x97a5('0x2d')]=function(_0x5f10dd,_0x462c0f){var _0x1b5d4e={},_0x279a59={},_0x3a112e={'count':0x0,'rows':[]};var _0x3b69b4=_[_0x97a5('0x2e')](db['Disposition'][_0x97a5('0x2f')],function(_0x4ac58f){return{'name':_0x4ac58f[_0x97a5('0x30')],'type':_0x4ac58f[_0x97a5('0x31')][_0x97a5('0x32')]};});_0x279a59[_0x97a5('0x33')]=_['map'](_0x3b69b4,'name');_0x279a59['query']=_[_0x97a5('0x34')](_0x5f10dd[_0x97a5('0x35')]);_0x279a59[_0x97a5('0x36')]=_[_0x97a5('0x37')](_0x279a59[_0x97a5('0x33')],_0x279a59['query']);_0x1b5d4e['attributes']=_[_0x97a5('0x37')](_0x279a59[_0x97a5('0x33')],qs[_0x97a5('0x38')](_0x5f10dd[_0x97a5('0x35')][_0x97a5('0x38')]));_0x1b5d4e[_0x97a5('0x39')]=_0x1b5d4e[_0x97a5('0x39')][_0x97a5('0x3a')]?_0x1b5d4e[_0x97a5('0x39')]:_0x279a59[_0x97a5('0x33')];if(!_0x5f10dd['query'][_0x97a5('0x3b')](_0x97a5('0x3c'))){_0x1b5d4e[_0x97a5('0x1d')]=qs[_0x97a5('0x1d')](_0x5f10dd[_0x97a5('0x35')][_0x97a5('0x1d')]);_0x1b5d4e[_0x97a5('0x1b')]=qs[_0x97a5('0x1b')](_0x5f10dd[_0x97a5('0x35')]['offset']);}_0x1b5d4e[_0x97a5('0x3d')]=qs[_0x97a5('0x3e')](_0x5f10dd[_0x97a5('0x35')][_0x97a5('0x3e')]);_0x1b5d4e[_0x97a5('0x3f')]=qs['filters'](_[_0x97a5('0x40')](_0x5f10dd['query'],_0x279a59[_0x97a5('0x36')]),_0x3b69b4);if(_0x5f10dd[_0x97a5('0x35')][_0x97a5('0x41')]){_0x1b5d4e[_0x97a5('0x3f')]=_[_0x97a5('0x42')](_0x1b5d4e['where'],{'$or':_['map'](_0x3b69b4,function(_0x469e70){if(_0x469e70['type']!==_0x97a5('0x43')){var _0x295c48={};_0x295c48[_0x469e70[_0x97a5('0x2b')]]={'$like':'%'+_0x5f10dd[_0x97a5('0x35')][_0x97a5('0x41')]+'%'};return _0x295c48;}})});}_0x1b5d4e=_[_0x97a5('0x42')]({},_0x1b5d4e,_0x5f10dd[_0x97a5('0x44')]);var _0x1787e6={'where':_0x1b5d4e[_0x97a5('0x3f')]};return db[_0x97a5('0x45')][_0x97a5('0x1e')](_0x1787e6)['then'](function(_0x5a5c32){_0x3a112e['count']=_0x5a5c32;if(_0x5f10dd[_0x97a5('0x35')][_0x97a5('0x46')]){_0x1b5d4e[_0x97a5('0x47')]=[{'all':!![]}];}return db['Disposition']['findAll'](_0x1b5d4e);})[_0x97a5('0x24')](function(_0x2f9159){_0x3a112e['rows']=_0x2f9159;return _0x3a112e;})[_0x97a5('0x24')](respondWithFilteredResult(_0x462c0f,_0x1b5d4e))[_0x97a5('0x48')](handleError(_0x462c0f,null));};exports[_0x97a5('0x49')]=function(_0x4ebf18,_0xd146ed){var _0xcf2579={'raw':!![],'where':{'id':_0x4ebf18[_0x97a5('0x4a')]['id']}},_0xec18da={};_0xec18da[_0x97a5('0x33')]=_['keys'](db[_0x97a5('0x45')][_0x97a5('0x2f')]);_0xec18da[_0x97a5('0x35')]=_[_0x97a5('0x34')](_0x4ebf18[_0x97a5('0x35')]);_0xec18da[_0x97a5('0x36')]=_[_0x97a5('0x37')](_0xec18da['model'],_0xec18da[_0x97a5('0x35')]);_0xcf2579['attributes']=_[_0x97a5('0x37')](_0xec18da[_0x97a5('0x33')],qs[_0x97a5('0x38')](_0x4ebf18['query']['fields']));_0xcf2579['attributes']=_0xcf2579['attributes'][_0x97a5('0x3a')]?_0xcf2579[_0x97a5('0x39')]:_0xec18da[_0x97a5('0x33')];if(_0x4ebf18[_0x97a5('0x35')][_0x97a5('0x46')]){_0xcf2579[_0x97a5('0x47')]=[{'all':!![]}];}_0xcf2579=_[_0x97a5('0x42')]({},_0xcf2579,_0x4ebf18['options']);return db[_0x97a5('0x45')][_0x97a5('0x4b')](_0xcf2579)[_0x97a5('0x24')](handleEntityNotFound(_0xd146ed,null))[_0x97a5('0x24')](respondWithResult(_0xd146ed,null))['catch'](handleError(_0xd146ed,null));};exports[_0x97a5('0x4c')]=function(_0x6d0f63,_0x42b2a8){return db[_0x97a5('0x45')][_0x97a5('0x4c')](_0x6d0f63[_0x97a5('0x4d')],{})[_0x97a5('0x24')](function(_0x29f2dd){var _0xef7028=_0x6d0f63[_0x97a5('0x4e')][_0x97a5('0x26')]({'plain':!![]});if(!_0xef7028)throw new Error(_0x97a5('0x4f'));if(_0xef7028[_0x97a5('0x50')]===_0x97a5('0x4e')){var _0x472bc8=_0x29f2dd[_0x97a5('0x26')]({'plain':!![]});var _0x405212=_0x97a5('0x27');return db['UserProfileSection'][_0x97a5('0x4b')]({'where':{'name':_0x405212,'userProfileId':_0xef7028[_0x97a5('0x51')]},'raw':!![]})[_0x97a5('0x24')](function(_0x299147){if(_0x299147&&_0x299147['autoAssociation']===0x0){return db['UserProfileResource'][_0x97a5('0x4c')]({'name':_0x472bc8[_0x97a5('0x2b')],'resourceId':_0x472bc8['id'],'type':_0x299147['name'],'sectionId':_0x299147['id']},{})[_0x97a5('0x24')](function(){return _0x29f2dd;});}else{return _0x29f2dd;}})[_0x97a5('0x48')](function(_0x277678){logger[_0x97a5('0x29')](_0x97a5('0x52'),_0x277678);throw _0x277678;});}return _0x29f2dd;})[_0x97a5('0x24')](respondWithResult(_0x42b2a8,0xc9))[_0x97a5('0x48')](handleError(_0x42b2a8,null));};exports[_0x97a5('0x23')]=function(_0x4a6e8a,_0x153ace){if(_0x4a6e8a['body']['id']){delete _0x4a6e8a[_0x97a5('0x4d')]['id'];}return db['Disposition'][_0x97a5('0x4b')]({'where':{'id':_0x4a6e8a['params']['id']}})[_0x97a5('0x24')](handleEntityNotFound(_0x153ace,null))['then'](saveUpdates(_0x4a6e8a['body'],null))[_0x97a5('0x24')](respondWithResult(_0x153ace,null))[_0x97a5('0x48')](handleError(_0x153ace,null));};exports[_0x97a5('0x25')]=function(_0x5ae6d8,_0x46cc55){return db[_0x97a5('0x45')]['find']({'where':{'id':_0x5ae6d8[_0x97a5('0x4a')]['id']}})['then'](handleEntityNotFound(_0x46cc55,null))[_0x97a5('0x24')](removeEntity(_0x46cc55,null))[_0x97a5('0x48')](handleError(_0x46cc55,null));};