Built motion from commit 1fa89557.|2.6.10
[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 _0x5559=['create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','eml-format','rimraf','mustache','util','path','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','limit','count','offset','set','Content-Range','json','apply','reject','save','destroy','then','Dispositions','UserProfileResource','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','filters','filter','merge','VIRTUAL','options','Disposition','includeAll','include','findAll','rows','catch','show','params','find'];(function(_0x13cab2,_0x3ae1f8){var _0x3d7f36=function(_0x2e5dff){while(--_0x2e5dff){_0x13cab2['push'](_0x13cab2['shift']());}};_0x3d7f36(++_0x3ae1f8);}(_0x5559,0x1af));var _0x9555=function(_0x3612f3,_0x4f5ed4){_0x3612f3=_0x3612f3-0x0;var _0x40e093=_0x5559[_0x3612f3];return _0x40e093;};'use strict';var emlformat=require(_0x9555('0x0'));var rimraf=require(_0x9555('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x9555('0x2'));var util=require(_0x9555('0x3'));var path=require(_0x9555('0x4'));var sox=require('sox');var csv=require(_0x9555('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9555('0x6'));var squel=require(_0x9555('0x7'));var crypto=require(_0x9555('0x8'));var jsforce=require(_0x9555('0x9'));var deskjs=require(_0x9555('0xa'));var toCsv=require(_0x9555('0x5'));var querystring=require('querystring');var Papa=require(_0x9555('0xb'));var Redis=require(_0x9555('0xc'));var authService=require(_0x9555('0xd'));var qs=require(_0x9555('0xe'));var as=require(_0x9555('0xf'));var hardwareService=require(_0x9555('0x10'));var logger=require(_0x9555('0x11'))('api');var utils=require(_0x9555('0x12'));var config=require(_0x9555('0x13'));var licenseUtil=require(_0x9555('0x14'));var db=require(_0x9555('0x15'))['db'];function respondWithStatusCode(_0x538c7a,_0x1a3008){_0x1a3008=_0x1a3008||0xcc;return function(_0x134375){if(_0x134375){return _0x538c7a[_0x9555('0x16')](_0x1a3008);}return _0x538c7a[_0x9555('0x17')](_0x1a3008)[_0x9555('0x18')]();};}function respondWithResult(_0xff17fc,_0x5ad5d7){_0x5ad5d7=_0x5ad5d7||0xc8;return function(_0x2be887){if(_0x2be887){return _0xff17fc[_0x9555('0x17')](_0x5ad5d7)['json'](_0x2be887);}};}function respondWithFilteredResult(_0x527cfc,_0x2f3f52){return function(_0x1374fc){if(_0x1374fc){var _0x4e640c=typeof _0x2f3f52['offset']==='undefined'&&typeof _0x2f3f52[_0x9555('0x19')]==='undefined';var _0x15be05=_0x1374fc[_0x9555('0x1a')];var _0x38bad0=_0x4e640c?0x0:_0x2f3f52[_0x9555('0x1b')];var _0x40667d=_0x4e640c?_0x1374fc['count']:_0x2f3f52[_0x9555('0x1b')]+_0x2f3f52[_0x9555('0x19')];var _0x3a40e7;if(_0x40667d>=_0x15be05){_0x40667d=_0x15be05;_0x3a40e7=0xc8;}else{_0x3a40e7=0xce;}_0x527cfc[_0x9555('0x17')](_0x3a40e7);return _0x527cfc[_0x9555('0x1c')](_0x9555('0x1d'),_0x38bad0+'-'+_0x40667d+'/'+_0x15be05)[_0x9555('0x1e')](_0x1374fc);}return null;};}function patchUpdates(_0x263317){return function(_0x44a300){try{jsonpatch[_0x9555('0x1f')](_0x44a300,_0x263317,!![]);}catch(_0x385f1d){return BPromise[_0x9555('0x20')](_0x385f1d);}return _0x44a300[_0x9555('0x21')]();};}function saveUpdates(_0x12248a,_0x152c51){return function(_0xb53b82){if(_0xb53b82){return _0xb53b82['update'](_0x12248a)['then'](function(_0x28bd2d){return _0x28bd2d;});}return null;};}function removeEntity(_0x144d64,_0x2ce4e7){return function(_0x217d60){if(_0x217d60){return _0x217d60[_0x9555('0x22')]()[_0x9555('0x23')](function(){var _0x4fac40=_0x217d60['get']({'plain':!![]});var _0x5c408d=_0x9555('0x24');return db[_0x9555('0x25')][_0x9555('0x22')]({'where':{'type':_0x5c408d,'resourceId':_0x4fac40['id']}})[_0x9555('0x23')](function(){return _0x217d60;});})['then'](function(){_0x144d64[_0x9555('0x17')](0xcc)[_0x9555('0x18')]();});}};}function handleEntityNotFound(_0x87d923,_0x47040c){return function(_0x1a24b5){if(!_0x1a24b5){_0x87d923['sendStatus'](0x194);}return _0x1a24b5;};}function handleError(_0x23b4e1,_0x15a92b){_0x15a92b=_0x15a92b||0x1f4;return function(_0x473bd0){logger[_0x9555('0x26')](_0x473bd0[_0x9555('0x27')]);if(_0x473bd0['name']){delete _0x473bd0[_0x9555('0x28')];}_0x23b4e1[_0x9555('0x17')](_0x15a92b)[_0x9555('0x29')](_0x473bd0);};}exports[_0x9555('0x2a')]=function(_0x5b6f50,_0x2b5253){var _0x2f9f8d={},_0x1a7e35={},_0x3f3025={'count':0x0,'rows':[]};var _0x6acace=_[_0x9555('0x2b')](db['Disposition'][_0x9555('0x2c')],function(_0xdb5eb2){return{'name':_0xdb5eb2[_0x9555('0x2d')],'type':_0xdb5eb2[_0x9555('0x2e')][_0x9555('0x2f')]};});_0x1a7e35[_0x9555('0x30')]=_[_0x9555('0x2b')](_0x6acace,_0x9555('0x28'));_0x1a7e35[_0x9555('0x31')]=_[_0x9555('0x32')](_0x5b6f50[_0x9555('0x31')]);_0x1a7e35['filters']=_[_0x9555('0x33')](_0x1a7e35[_0x9555('0x30')],_0x1a7e35[_0x9555('0x31')]);_0x2f9f8d['attributes']=_[_0x9555('0x33')](_0x1a7e35['model'],qs[_0x9555('0x34')](_0x5b6f50[_0x9555('0x31')][_0x9555('0x34')]));_0x2f9f8d[_0x9555('0x35')]=_0x2f9f8d['attributes'][_0x9555('0x36')]?_0x2f9f8d[_0x9555('0x35')]:_0x1a7e35['model'];if(!_0x5b6f50[_0x9555('0x31')][_0x9555('0x37')]('nolimit')){_0x2f9f8d[_0x9555('0x19')]=qs[_0x9555('0x19')](_0x5b6f50[_0x9555('0x31')][_0x9555('0x19')]);_0x2f9f8d[_0x9555('0x1b')]=qs[_0x9555('0x1b')](_0x5b6f50['query'][_0x9555('0x1b')]);}_0x2f9f8d[_0x9555('0x38')]=qs[_0x9555('0x39')](_0x5b6f50[_0x9555('0x31')]['sort']);_0x2f9f8d[_0x9555('0x3a')]=qs[_0x9555('0x3b')](_['pick'](_0x5b6f50[_0x9555('0x31')],_0x1a7e35[_0x9555('0x3b')]),_0x6acace);if(_0x5b6f50[_0x9555('0x31')][_0x9555('0x3c')]){_0x2f9f8d[_0x9555('0x3a')]=_[_0x9555('0x3d')](_0x2f9f8d[_0x9555('0x3a')],{'$or':_[_0x9555('0x2b')](_0x6acace,function(_0x560e29){if(_0x560e29[_0x9555('0x2e')]!==_0x9555('0x3e')){var _0x41c654={};_0x41c654[_0x560e29[_0x9555('0x28')]]={'$like':'%'+_0x5b6f50[_0x9555('0x31')][_0x9555('0x3c')]+'%'};return _0x41c654;}})});}_0x2f9f8d=_[_0x9555('0x3d')]({},_0x2f9f8d,_0x5b6f50[_0x9555('0x3f')]);var _0x4a33be={'where':_0x2f9f8d['where']};return db[_0x9555('0x40')]['count'](_0x4a33be)[_0x9555('0x23')](function(_0x79a53c){_0x3f3025[_0x9555('0x1a')]=_0x79a53c;if(_0x5b6f50[_0x9555('0x31')][_0x9555('0x41')]){_0x2f9f8d[_0x9555('0x42')]=[{'all':!![]}];}return db[_0x9555('0x40')][_0x9555('0x43')](_0x2f9f8d);})[_0x9555('0x23')](function(_0x4acdfc){_0x3f3025[_0x9555('0x44')]=_0x4acdfc;return _0x3f3025;})[_0x9555('0x23')](respondWithFilteredResult(_0x2b5253,_0x2f9f8d))[_0x9555('0x45')](handleError(_0x2b5253,null));};exports[_0x9555('0x46')]=function(_0x115637,_0x4c8dd7){var _0x1cdf9f={'raw':!![],'where':{'id':_0x115637[_0x9555('0x47')]['id']}},_0x51bdc3={};_0x51bdc3['model']=_[_0x9555('0x32')](db[_0x9555('0x40')][_0x9555('0x2c')]);_0x51bdc3['query']=_[_0x9555('0x32')](_0x115637[_0x9555('0x31')]);_0x51bdc3[_0x9555('0x3b')]=_[_0x9555('0x33')](_0x51bdc3[_0x9555('0x30')],_0x51bdc3[_0x9555('0x31')]);_0x1cdf9f['attributes']=_[_0x9555('0x33')](_0x51bdc3[_0x9555('0x30')],qs[_0x9555('0x34')](_0x115637[_0x9555('0x31')][_0x9555('0x34')]));_0x1cdf9f[_0x9555('0x35')]=_0x1cdf9f[_0x9555('0x35')][_0x9555('0x36')]?_0x1cdf9f['attributes']:_0x51bdc3[_0x9555('0x30')];if(_0x115637[_0x9555('0x31')][_0x9555('0x41')]){_0x1cdf9f[_0x9555('0x42')]=[{'all':!![]}];}_0x1cdf9f=_[_0x9555('0x3d')]({},_0x1cdf9f,_0x115637[_0x9555('0x3f')]);return db['Disposition'][_0x9555('0x48')](_0x1cdf9f)[_0x9555('0x23')](handleEntityNotFound(_0x4c8dd7,null))[_0x9555('0x23')](respondWithResult(_0x4c8dd7,null))[_0x9555('0x45')](handleError(_0x4c8dd7,null));};exports[_0x9555('0x49')]=function(_0x54df6d,_0xb89d22){return db[_0x9555('0x40')][_0x9555('0x49')](_0x54df6d['body'],{})[_0x9555('0x23')](function(_0x2e8f08){var _0x57669e=_0x54df6d[_0x9555('0x4a')][_0x9555('0x4b')]({'plain':!![]});if(!_0x57669e)throw new Error(_0x9555('0x4c'));if(_0x57669e[_0x9555('0x4d')]===_0x9555('0x4a')){var _0x452902=_0x2e8f08['get']({'plain':!![]});var _0x295c74='Dispositions';return db[_0x9555('0x4e')][_0x9555('0x48')]({'where':{'name':_0x295c74,'userProfileId':_0x57669e[_0x9555('0x4f')]},'raw':!![]})['then'](function(_0x265595){if(_0x265595&&_0x265595[_0x9555('0x50')]===0x0){return db[_0x9555('0x25')][_0x9555('0x49')]({'name':_0x452902[_0x9555('0x28')],'resourceId':_0x452902['id'],'type':_0x265595[_0x9555('0x28')],'sectionId':_0x265595['id']},{})[_0x9555('0x23')](function(){return _0x2e8f08;});}else{return _0x2e8f08;}})[_0x9555('0x45')](function(_0x36ad0b){logger[_0x9555('0x26')](_0x9555('0x51'),_0x36ad0b);throw _0x36ad0b;});}return _0x2e8f08;})[_0x9555('0x23')](respondWithResult(_0xb89d22,0xc9))['catch'](handleError(_0xb89d22,null));};exports[_0x9555('0x52')]=function(_0xcae75a,_0x4653cf){if(_0xcae75a['body']['id']){delete _0xcae75a[_0x9555('0x53')]['id'];}return db[_0x9555('0x40')][_0x9555('0x48')]({'where':{'id':_0xcae75a[_0x9555('0x47')]['id']}})[_0x9555('0x23')](handleEntityNotFound(_0x4653cf,null))[_0x9555('0x23')](saveUpdates(_0xcae75a['body'],null))[_0x9555('0x23')](respondWithResult(_0x4653cf,null))[_0x9555('0x45')](handleError(_0x4653cf,null));};exports[_0x9555('0x22')]=function(_0x4356ef,_0x3a1758){return db[_0x9555('0x40')][_0x9555('0x48')]({'where':{'id':_0x4356ef[_0x9555('0x47')]['id']}})[_0x9555('0x23')](handleEntityNotFound(_0x3a1758,null))[_0x9555('0x23')](removeEntity(_0x3a1758,null))[_0x9555('0x45')](handleError(_0x3a1758,null));};