Built motion from commit 43538d75.|2.5.35
[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 _0x1cff=['key','keys','query','filters','intersection','model','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','fields','include','find','create','body','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','sendStatus','status','end','offset','undefined','count','limit','set','json','reject','save','update','then','get','UserProfileResource','destroy','stack','name','send','index','map','Disposition','rawAttributes','type'];(function(_0x1d8fde,_0xaa0599){var _0x37ea1b=function(_0x5df7c1){while(--_0x5df7c1){_0x1d8fde['push'](_0x1d8fde['shift']());}};_0x37ea1b(++_0xaa0599);}(_0x1cff,0x164));var _0xf1cf=function(_0x376078,_0x17cd7e){_0x376078=_0x376078-0x0;var _0x5bd8a0=_0x1cff[_0x376078];return _0x5bd8a0;};'use strict';var emlformat=require(_0xf1cf('0x0'));var rimraf=require(_0xf1cf('0x1'));var zipdir=require(_0xf1cf('0x2'));var jsonpatch=require(_0xf1cf('0x3'));var rp=require(_0xf1cf('0x4'));var moment=require('moment');var BPromise=require(_0xf1cf('0x5'));var Mustache=require(_0xf1cf('0x6'));var util=require(_0xf1cf('0x7'));var path=require('path');var sox=require(_0xf1cf('0x8'));var csv=require('to-csv');var ejs=require(_0xf1cf('0x9'));var fs=require('fs');var fs_extra=require(_0xf1cf('0xa'));var _=require(_0xf1cf('0xb'));var squel=require(_0xf1cf('0xc'));var crypto=require(_0xf1cf('0xd'));var jsforce=require(_0xf1cf('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xf1cf('0xf'));var Papa=require(_0xf1cf('0x10'));var Redis=require(_0xf1cf('0x11'));var authService=require(_0xf1cf('0x12'));var qs=require(_0xf1cf('0x13'));var as=require(_0xf1cf('0x14'));var hardwareService=require(_0xf1cf('0x15'));var logger=require(_0xf1cf('0x16'))(_0xf1cf('0x17'));var utils=require('../../config/utils');var config=require(_0xf1cf('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3f215d,_0x4df8a8){_0x4df8a8=_0x4df8a8||0xcc;return function(_0x54480f){if(_0x54480f){return _0x3f215d[_0xf1cf('0x19')](_0x4df8a8);}return _0x3f215d[_0xf1cf('0x1a')](_0x4df8a8)[_0xf1cf('0x1b')]();};}function respondWithResult(_0x242bd7,_0x5efd44){_0x5efd44=_0x5efd44||0xc8;return function(_0x1f2399){if(_0x1f2399){return _0x242bd7['status'](_0x5efd44)['json'](_0x1f2399);}};}function respondWithFilteredResult(_0x5243d5,_0x16acb4){return function(_0x410357){if(_0x410357){var _0xd7b947=typeof _0x16acb4[_0xf1cf('0x1c')]==='undefined'&&typeof _0x16acb4['limit']===_0xf1cf('0x1d');var _0x40a656=_0x410357[_0xf1cf('0x1e')];var _0x26c200=_0xd7b947?0x0:_0x16acb4[_0xf1cf('0x1c')];var _0x2b137e=_0xd7b947?_0x410357['count']:_0x16acb4[_0xf1cf('0x1c')]+_0x16acb4[_0xf1cf('0x1f')];var _0x1b04a6;if(_0x2b137e>=_0x40a656){_0x2b137e=_0x40a656;_0x1b04a6=0xc8;}else{_0x1b04a6=0xce;}_0x5243d5['status'](_0x1b04a6);return _0x5243d5[_0xf1cf('0x20')]('Content-Range',_0x26c200+'-'+_0x2b137e+'/'+_0x40a656)[_0xf1cf('0x21')](_0x410357);}return null;};}function patchUpdates(_0x22e93a){return function(_0x1c89cb){try{jsonpatch['apply'](_0x1c89cb,_0x22e93a,!![]);}catch(_0x524804){return BPromise[_0xf1cf('0x22')](_0x524804);}return _0x1c89cb[_0xf1cf('0x23')]();};}function saveUpdates(_0x1b9d57,_0x591d00){return function(_0x54e5c5){if(_0x54e5c5){return _0x54e5c5[_0xf1cf('0x24')](_0x1b9d57)['then'](function(_0xbb91d3){return _0xbb91d3;});}return null;};}function removeEntity(_0x4fc48d,_0x3b434f){return function(_0x3fc15d){if(_0x3fc15d){return _0x3fc15d['destroy']()[_0xf1cf('0x25')](function(){var _0x313bf9=_0x3fc15d[_0xf1cf('0x26')]({'plain':!![]});var _0x10ed30='Dispositions';return db[_0xf1cf('0x27')][_0xf1cf('0x28')]({'where':{'type':_0x10ed30,'resourceId':_0x313bf9['id']}})[_0xf1cf('0x25')](function(){return _0x3fc15d;});})[_0xf1cf('0x25')](function(){_0x4fc48d[_0xf1cf('0x1a')](0xcc)[_0xf1cf('0x1b')]();});}};}function handleEntityNotFound(_0x39a91a,_0x4ad9aa){return function(_0x1c2053){if(!_0x1c2053){_0x39a91a[_0xf1cf('0x19')](0x194);}return _0x1c2053;};}function handleError(_0x28f44c,_0x1db3c9){_0x1db3c9=_0x1db3c9||0x1f4;return function(_0x465cab){logger['error'](_0x465cab[_0xf1cf('0x29')]);if(_0x465cab['name']){delete _0x465cab[_0xf1cf('0x2a')];}_0x28f44c[_0xf1cf('0x1a')](_0x1db3c9)[_0xf1cf('0x2b')](_0x465cab);};}exports[_0xf1cf('0x2c')]=function(_0x238dcd,_0x3b0608){var _0x4051e3={},_0x3a6da9={},_0x40ebbf={'count':0x0,'rows':[]};var _0x44ee7e=_[_0xf1cf('0x2d')](db[_0xf1cf('0x2e')][_0xf1cf('0x2f')],function(_0x3d761d){return{'name':_0x3d761d['fieldName'],'type':_0x3d761d[_0xf1cf('0x30')][_0xf1cf('0x31')]};});_0x3a6da9['model']=_['map'](_0x44ee7e,_0xf1cf('0x2a'));_0x3a6da9['query']=_[_0xf1cf('0x32')](_0x238dcd[_0xf1cf('0x33')]);_0x3a6da9[_0xf1cf('0x34')]=_[_0xf1cf('0x35')](_0x3a6da9[_0xf1cf('0x36')],_0x3a6da9[_0xf1cf('0x33')]);_0x4051e3[_0xf1cf('0x37')]=_[_0xf1cf('0x35')](_0x3a6da9[_0xf1cf('0x36')],qs['fields'](_0x238dcd['query']['fields']));_0x4051e3[_0xf1cf('0x37')]=_0x4051e3[_0xf1cf('0x37')][_0xf1cf('0x38')]?_0x4051e3[_0xf1cf('0x37')]:_0x3a6da9['model'];if(!_0x238dcd[_0xf1cf('0x33')]['hasOwnProperty'](_0xf1cf('0x39'))){_0x4051e3['limit']=qs[_0xf1cf('0x1f')](_0x238dcd[_0xf1cf('0x33')][_0xf1cf('0x1f')]);_0x4051e3[_0xf1cf('0x1c')]=qs[_0xf1cf('0x1c')](_0x238dcd[_0xf1cf('0x33')][_0xf1cf('0x1c')]);}_0x4051e3[_0xf1cf('0x3a')]=qs[_0xf1cf('0x3b')](_0x238dcd[_0xf1cf('0x33')][_0xf1cf('0x3b')]);_0x4051e3[_0xf1cf('0x3c')]=qs[_0xf1cf('0x34')](_[_0xf1cf('0x3d')](_0x238dcd[_0xf1cf('0x33')],_0x3a6da9['filters']),_0x44ee7e);if(_0x238dcd[_0xf1cf('0x33')][_0xf1cf('0x3e')]){_0x4051e3[_0xf1cf('0x3c')]=_[_0xf1cf('0x3f')](_0x4051e3[_0xf1cf('0x3c')],{'$or':_['map'](_0x44ee7e,function(_0x1b5e3f){if(_0x1b5e3f[_0xf1cf('0x30')]!==_0xf1cf('0x40')){var _0x5db7b4={};_0x5db7b4[_0x1b5e3f['name']]={'$like':'%'+_0x238dcd[_0xf1cf('0x33')][_0xf1cf('0x3e')]+'%'};return _0x5db7b4;}})});}_0x4051e3=_[_0xf1cf('0x3f')]({},_0x4051e3,_0x238dcd[_0xf1cf('0x41')]);var _0x6f79fa={'where':_0x4051e3['where']};return db['Disposition'][_0xf1cf('0x1e')](_0x6f79fa)[_0xf1cf('0x25')](function(_0x43066d){_0x40ebbf[_0xf1cf('0x1e')]=_0x43066d;if(_0x238dcd[_0xf1cf('0x33')][_0xf1cf('0x42')]){_0x4051e3['include']=[{'all':!![]}];}return db[_0xf1cf('0x2e')][_0xf1cf('0x43')](_0x4051e3);})[_0xf1cf('0x25')](function(_0x156ad0){_0x40ebbf[_0xf1cf('0x44')]=_0x156ad0;return _0x40ebbf;})[_0xf1cf('0x25')](respondWithFilteredResult(_0x3b0608,_0x4051e3))[_0xf1cf('0x45')](handleError(_0x3b0608,null));};exports[_0xf1cf('0x46')]=function(_0x48f347,_0x5c69a8){var _0x2fc7ac={'raw':!![],'where':{'id':_0x48f347[_0xf1cf('0x47')]['id']}},_0x150d51={};_0x150d51[_0xf1cf('0x36')]=_['keys'](db['Disposition'][_0xf1cf('0x2f')]);_0x150d51[_0xf1cf('0x33')]=_[_0xf1cf('0x32')](_0x48f347[_0xf1cf('0x33')]);_0x150d51[_0xf1cf('0x34')]=_[_0xf1cf('0x35')](_0x150d51[_0xf1cf('0x36')],_0x150d51[_0xf1cf('0x33')]);_0x2fc7ac[_0xf1cf('0x37')]=_['intersection'](_0x150d51[_0xf1cf('0x36')],qs[_0xf1cf('0x48')](_0x48f347[_0xf1cf('0x33')][_0xf1cf('0x48')]));_0x2fc7ac['attributes']=_0x2fc7ac[_0xf1cf('0x37')][_0xf1cf('0x38')]?_0x2fc7ac[_0xf1cf('0x37')]:_0x150d51[_0xf1cf('0x36')];if(_0x48f347[_0xf1cf('0x33')][_0xf1cf('0x42')]){_0x2fc7ac[_0xf1cf('0x49')]=[{'all':!![]}];}_0x2fc7ac=_[_0xf1cf('0x3f')]({},_0x2fc7ac,_0x48f347['options']);return db[_0xf1cf('0x2e')][_0xf1cf('0x4a')](_0x2fc7ac)[_0xf1cf('0x25')](handleEntityNotFound(_0x5c69a8,null))['then'](respondWithResult(_0x5c69a8,null))[_0xf1cf('0x45')](handleError(_0x5c69a8,null));};exports[_0xf1cf('0x4b')]=function(_0x301ae3,_0x3939eb){return db[_0xf1cf('0x2e')]['create'](_0x301ae3[_0xf1cf('0x4c')],{})[_0xf1cf('0x25')](function(_0x4ce0a7){var _0x3377b9=_0x301ae3['user'][_0xf1cf('0x26')]({'plain':!![]});if(!_0x3377b9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3377b9['role']==='user'){var _0x3854c8=_0x4ce0a7[_0xf1cf('0x26')]({'plain':!![]});var _0x229047='Dispositions';return db['UserProfileSection']['find']({'where':{'name':_0x229047,'userProfileId':_0x3377b9[_0xf1cf('0x4d')]},'raw':!![]})['then'](function(_0x2ef294){if(_0x2ef294&&_0x2ef294[_0xf1cf('0x4e')]===0x0){return db[_0xf1cf('0x27')][_0xf1cf('0x4b')]({'name':_0x3854c8[_0xf1cf('0x2a')],'resourceId':_0x3854c8['id'],'type':_0x2ef294['name'],'sectionId':_0x2ef294['id']},{})[_0xf1cf('0x25')](function(){return _0x4ce0a7;});}else{return _0x4ce0a7;}})[_0xf1cf('0x45')](function(_0x10afb5){logger[_0xf1cf('0x4f')](_0xf1cf('0x50'),_0x10afb5);throw _0x10afb5;});}return _0x4ce0a7;})['then'](respondWithResult(_0x3939eb,0xc9))[_0xf1cf('0x45')](handleError(_0x3939eb,null));};exports['update']=function(_0x4b1161,_0x11308a){if(_0x4b1161[_0xf1cf('0x4c')]['id']){delete _0x4b1161[_0xf1cf('0x4c')]['id'];}return db[_0xf1cf('0x2e')][_0xf1cf('0x4a')]({'where':{'id':_0x4b1161[_0xf1cf('0x47')]['id']}})[_0xf1cf('0x25')](handleEntityNotFound(_0x11308a,null))[_0xf1cf('0x25')](saveUpdates(_0x4b1161[_0xf1cf('0x4c')],null))['then'](respondWithResult(_0x11308a,null))['catch'](handleError(_0x11308a,null));};exports[_0xf1cf('0x28')]=function(_0x6d62bf,_0x53e580){return db['Disposition'][_0xf1cf('0x4a')]({'where':{'id':_0x6d62bf[_0xf1cf('0x47')]['id']}})[_0xf1cf('0x25')](handleEntityNotFound(_0x53e580,null))['then'](removeEntity(_0x53e580,null))[_0xf1cf('0x45')](handleError(_0x53e580,null));};