Built motion from commit 9d0783e6.|2.6.13
[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 _0x12c2=['undefined','limit','count','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','stack','name','send','index','Disposition','fieldName','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','rawAttributes','find','create','body','role','user','Dispositions','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','offset'];(function(_0x57c2b5,_0x28f98a){var _0x2ad3ff=function(_0x2d96c5){while(--_0x2d96c5){_0x57c2b5['push'](_0x57c2b5['shift']());}};_0x2ad3ff(++_0x28f98a);}(_0x12c2,0xdc));var _0x212c=function(_0x144d5b,_0xc6249f){_0x144d5b=_0x144d5b-0x0;var _0xccdcf4=_0x12c2[_0x144d5b];return _0xccdcf4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x212c('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x212c('0x1'));var rp=require(_0x212c('0x2'));var moment=require(_0x212c('0x3'));var BPromise=require(_0x212c('0x4'));var Mustache=require(_0x212c('0x5'));var util=require(_0x212c('0x6'));var path=require(_0x212c('0x7'));var sox=require(_0x212c('0x8'));var csv=require(_0x212c('0x9'));var ejs=require(_0x212c('0xa'));var fs=require('fs');var fs_extra=require(_0x212c('0xb'));var _=require(_0x212c('0xc'));var squel=require('squel');var crypto=require(_0x212c('0xd'));var jsforce=require(_0x212c('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x212c('0x9'));var querystring=require(_0x212c('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x212c('0x10'));var qs=require(_0x212c('0x11'));var as=require(_0x212c('0x12'));var hardwareService=require(_0x212c('0x13'));var logger=require(_0x212c('0x14'))(_0x212c('0x15'));var utils=require(_0x212c('0x16'));var config=require(_0x212c('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xe9c21c,_0x1ff515){_0x1ff515=_0x1ff515||0xcc;return function(_0x6f2902){if(_0x6f2902){return _0xe9c21c[_0x212c('0x18')](_0x1ff515);}return _0xe9c21c[_0x212c('0x19')](_0x1ff515)[_0x212c('0x1a')]();};}function respondWithResult(_0x34e27b,_0x56affb){_0x56affb=_0x56affb||0xc8;return function(_0x3e30f5){if(_0x3e30f5){return _0x34e27b[_0x212c('0x19')](_0x56affb)[_0x212c('0x1b')](_0x3e30f5);}};}function respondWithFilteredResult(_0x44f224,_0x2b6bdc){return function(_0x86b703){if(_0x86b703){var _0xddfb8a=typeof _0x2b6bdc[_0x212c('0x1c')]===_0x212c('0x1d')&&typeof _0x2b6bdc[_0x212c('0x1e')]===_0x212c('0x1d');var _0x14d443=_0x86b703[_0x212c('0x1f')];var _0x14ef56=_0xddfb8a?0x0:_0x2b6bdc[_0x212c('0x1c')];var _0x41abda=_0xddfb8a?_0x86b703['count']:_0x2b6bdc[_0x212c('0x1c')]+_0x2b6bdc['limit'];var _0x42a278;if(_0x41abda>=_0x14d443){_0x41abda=_0x14d443;_0x42a278=0xc8;}else{_0x42a278=0xce;}_0x44f224[_0x212c('0x19')](_0x42a278);return _0x44f224['set'](_0x212c('0x20'),_0x14ef56+'-'+_0x41abda+'/'+_0x14d443)[_0x212c('0x1b')](_0x86b703);}return null;};}function patchUpdates(_0x5a65da){return function(_0x1c9f1b){try{jsonpatch[_0x212c('0x21')](_0x1c9f1b,_0x5a65da,!![]);}catch(_0x5d0863){return BPromise[_0x212c('0x22')](_0x5d0863);}return _0x1c9f1b[_0x212c('0x23')]();};}function saveUpdates(_0x20f77a,_0x4e536e){return function(_0x5eefab){if(_0x5eefab){return _0x5eefab[_0x212c('0x24')](_0x20f77a)[_0x212c('0x25')](function(_0x3e84ba){return _0x3e84ba;});}return null;};}function removeEntity(_0x3857db,_0x33fe6d){return function(_0x14ee86){if(_0x14ee86){return _0x14ee86[_0x212c('0x26')]()[_0x212c('0x25')](function(){var _0x35834a=_0x14ee86[_0x212c('0x27')]({'plain':!![]});var _0x3de5b4='Dispositions';return db[_0x212c('0x28')]['destroy']({'where':{'type':_0x3de5b4,'resourceId':_0x35834a['id']}})['then'](function(){return _0x14ee86;});})[_0x212c('0x25')](function(){_0x3857db['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1590a8,_0x50bfa0){return function(_0x2ee8bc){if(!_0x2ee8bc){_0x1590a8['sendStatus'](0x194);}return _0x2ee8bc;};}function handleError(_0x19469e,_0x173684){_0x173684=_0x173684||0x1f4;return function(_0x43ba5a){logger['error'](_0x43ba5a[_0x212c('0x29')]);if(_0x43ba5a[_0x212c('0x2a')]){delete _0x43ba5a['name'];}_0x19469e['status'](_0x173684)[_0x212c('0x2b')](_0x43ba5a);};}exports[_0x212c('0x2c')]=function(_0x49f841,_0x4cb1ed){var _0x2c90ab={},_0xeff53a={},_0x3c875f={'count':0x0,'rows':[]};var _0x26054f=_['map'](db[_0x212c('0x2d')]['rawAttributes'],function(_0x100732){return{'name':_0x100732[_0x212c('0x2e')],'type':_0x100732['type'][_0x212c('0x2f')]};});_0xeff53a[_0x212c('0x30')]=_[_0x212c('0x31')](_0x26054f,_0x212c('0x2a'));_0xeff53a[_0x212c('0x32')]=_['keys'](_0x49f841[_0x212c('0x32')]);_0xeff53a[_0x212c('0x33')]=_[_0x212c('0x34')](_0xeff53a[_0x212c('0x30')],_0xeff53a[_0x212c('0x32')]);_0x2c90ab[_0x212c('0x35')]=_[_0x212c('0x34')](_0xeff53a[_0x212c('0x30')],qs[_0x212c('0x36')](_0x49f841[_0x212c('0x32')][_0x212c('0x36')]));_0x2c90ab[_0x212c('0x35')]=_0x2c90ab[_0x212c('0x35')][_0x212c('0x37')]?_0x2c90ab[_0x212c('0x35')]:_0xeff53a[_0x212c('0x30')];if(!_0x49f841[_0x212c('0x32')][_0x212c('0x38')]('nolimit')){_0x2c90ab[_0x212c('0x1e')]=qs[_0x212c('0x1e')](_0x49f841[_0x212c('0x32')]['limit']);_0x2c90ab[_0x212c('0x1c')]=qs[_0x212c('0x1c')](_0x49f841['query'][_0x212c('0x1c')]);}_0x2c90ab['order']=qs[_0x212c('0x39')](_0x49f841[_0x212c('0x32')][_0x212c('0x39')]);_0x2c90ab[_0x212c('0x3a')]=qs['filters'](_[_0x212c('0x3b')](_0x49f841[_0x212c('0x32')],_0xeff53a['filters']),_0x26054f);if(_0x49f841['query'][_0x212c('0x3c')]){_0x2c90ab[_0x212c('0x3a')]=_[_0x212c('0x3d')](_0x2c90ab[_0x212c('0x3a')],{'$or':_['map'](_0x26054f,function(_0x45745a){if(_0x45745a[_0x212c('0x3e')]!==_0x212c('0x3f')){var _0x40a663={};_0x40a663[_0x45745a[_0x212c('0x2a')]]={'$like':'%'+_0x49f841['query'][_0x212c('0x3c')]+'%'};return _0x40a663;}})});}_0x2c90ab=_[_0x212c('0x3d')]({},_0x2c90ab,_0x49f841[_0x212c('0x40')]);var _0x3001cd={'where':_0x2c90ab[_0x212c('0x3a')]};return db[_0x212c('0x2d')][_0x212c('0x1f')](_0x3001cd)['then'](function(_0x2a289e){_0x3c875f[_0x212c('0x1f')]=_0x2a289e;if(_0x49f841['query'][_0x212c('0x41')]){_0x2c90ab[_0x212c('0x42')]=[{'all':!![]}];}return db[_0x212c('0x2d')][_0x212c('0x43')](_0x2c90ab);})[_0x212c('0x25')](function(_0x1ae0ad){_0x3c875f[_0x212c('0x44')]=_0x1ae0ad;return _0x3c875f;})[_0x212c('0x25')](respondWithFilteredResult(_0x4cb1ed,_0x2c90ab))[_0x212c('0x45')](handleError(_0x4cb1ed,null));};exports[_0x212c('0x46')]=function(_0x2ba412,_0xd8e890){var _0x2fb0b7={'raw':!![],'where':{'id':_0x2ba412[_0x212c('0x47')]['id']}},_0x5981e5={};_0x5981e5[_0x212c('0x30')]=_[_0x212c('0x48')](db[_0x212c('0x2d')][_0x212c('0x49')]);_0x5981e5['query']=_['keys'](_0x2ba412[_0x212c('0x32')]);_0x5981e5['filters']=_[_0x212c('0x34')](_0x5981e5['model'],_0x5981e5[_0x212c('0x32')]);_0x2fb0b7[_0x212c('0x35')]=_[_0x212c('0x34')](_0x5981e5['model'],qs[_0x212c('0x36')](_0x2ba412[_0x212c('0x32')][_0x212c('0x36')]));_0x2fb0b7[_0x212c('0x35')]=_0x2fb0b7[_0x212c('0x35')][_0x212c('0x37')]?_0x2fb0b7[_0x212c('0x35')]:_0x5981e5['model'];if(_0x2ba412[_0x212c('0x32')][_0x212c('0x41')]){_0x2fb0b7['include']=[{'all':!![]}];}_0x2fb0b7=_[_0x212c('0x3d')]({},_0x2fb0b7,_0x2ba412[_0x212c('0x40')]);return db[_0x212c('0x2d')][_0x212c('0x4a')](_0x2fb0b7)[_0x212c('0x25')](handleEntityNotFound(_0xd8e890,null))[_0x212c('0x25')](respondWithResult(_0xd8e890,null))[_0x212c('0x45')](handleError(_0xd8e890,null));};exports[_0x212c('0x4b')]=function(_0x1c3e93,_0xd65927){return db['Disposition']['create'](_0x1c3e93[_0x212c('0x4c')],{})[_0x212c('0x25')](function(_0x19f194){var _0x2abbd8=_0x1c3e93['user'][_0x212c('0x27')]({'plain':!![]});if(!_0x2abbd8)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2abbd8[_0x212c('0x4d')]===_0x212c('0x4e')){var _0x4f6041=_0x19f194[_0x212c('0x27')]({'plain':!![]});var _0x35031a=_0x212c('0x4f');return db[_0x212c('0x50')][_0x212c('0x4a')]({'where':{'name':_0x35031a,'userProfileId':_0x2abbd8[_0x212c('0x51')]},'raw':!![]})[_0x212c('0x25')](function(_0x3c2390){if(_0x3c2390&&_0x3c2390['autoAssociation']===0x0){return db['UserProfileResource'][_0x212c('0x4b')]({'name':_0x4f6041[_0x212c('0x2a')],'resourceId':_0x4f6041['id'],'type':_0x3c2390['name'],'sectionId':_0x3c2390['id']},{})[_0x212c('0x25')](function(){return _0x19f194;});}else{return _0x19f194;}})[_0x212c('0x45')](function(_0x5b94dc){logger['error'](_0x212c('0x52'),_0x5b94dc);throw _0x5b94dc;});}return _0x19f194;})['then'](respondWithResult(_0xd65927,0xc9))[_0x212c('0x45')](handleError(_0xd65927,null));};exports[_0x212c('0x24')]=function(_0x480e50,_0x154e3f){if(_0x480e50['body']['id']){delete _0x480e50['body']['id'];}return db[_0x212c('0x2d')][_0x212c('0x4a')]({'where':{'id':_0x480e50[_0x212c('0x47')]['id']}})[_0x212c('0x25')](handleEntityNotFound(_0x154e3f,null))['then'](saveUpdates(_0x480e50[_0x212c('0x4c')],null))['then'](respondWithResult(_0x154e3f,null))[_0x212c('0x45')](handleError(_0x154e3f,null));};exports[_0x212c('0x26')]=function(_0x5b4b69,_0x570ec9){return db['Disposition']['find']({'where':{'id':_0x5b4b69[_0x212c('0x47')]['id']}})[_0x212c('0x25')](handleEntityNotFound(_0x570ec9,null))[_0x212c('0x25')](removeEntity(_0x570ec9,null))[_0x212c('0x45')](handleError(_0x570ec9,null));};