Built motion from commit e02f907f.|2.6.14
[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 _0xb344=['find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','squel','jsforce','desk.js','querystring','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','update','then','destroy','get','Dispositions','UserProfileResource','error','stack','name','send','index','map','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','Disposition','includeAll','include','findAll','rows','catch','show','params'];(function(_0x243e12,_0x2d7bc5){var _0x3fddfc=function(_0x2896ee){while(--_0x2896ee){_0x243e12['push'](_0x243e12['shift']());}};_0x3fddfc(++_0x2d7bc5);}(_0xb344,0x152));var _0x4b34=function(_0x57be20,_0x31e865){_0x57be20=_0x57be20-0x0;var _0x221e14=_0xb344[_0x57be20];return _0x221e14;};'use strict';var emlformat=require(_0x4b34('0x0'));var rimraf=require(_0x4b34('0x1'));var zipdir=require(_0x4b34('0x2'));var jsonpatch=require(_0x4b34('0x3'));var rp=require(_0x4b34('0x4'));var moment=require(_0x4b34('0x5'));var BPromise=require(_0x4b34('0x6'));var Mustache=require('mustache');var util=require(_0x4b34('0x7'));var path=require(_0x4b34('0x8'));var sox=require(_0x4b34('0x9'));var csv=require('to-csv');var ejs=require(_0x4b34('0xa'));var fs=require('fs');var fs_extra=require(_0x4b34('0xb'));var _=require('lodash');var squel=require(_0x4b34('0xc'));var crypto=require('crypto');var jsforce=require(_0x4b34('0xd'));var deskjs=require(_0x4b34('0xe'));var toCsv=require('to-csv');var querystring=require(_0x4b34('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x4b34('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x4b34('0x11'));var config=require(_0x4b34('0x12'));var licenseUtil=require(_0x4b34('0x13'));var db=require(_0x4b34('0x14'))['db'];function respondWithStatusCode(_0x24212a,_0x184fd3){_0x184fd3=_0x184fd3||0xcc;return function(_0xfeeaac){if(_0xfeeaac){return _0x24212a[_0x4b34('0x15')](_0x184fd3);}return _0x24212a[_0x4b34('0x16')](_0x184fd3)[_0x4b34('0x17')]();};}function respondWithResult(_0x2adf05,_0x4816c6){_0x4816c6=_0x4816c6||0xc8;return function(_0x13ce7c){if(_0x13ce7c){return _0x2adf05[_0x4b34('0x16')](_0x4816c6)['json'](_0x13ce7c);}};}function respondWithFilteredResult(_0x10ac9c,_0x19d9a4){return function(_0x4a9f83){if(_0x4a9f83){var _0x4c2681=typeof _0x19d9a4[_0x4b34('0x18')]===_0x4b34('0x19')&&typeof _0x19d9a4[_0x4b34('0x1a')]===_0x4b34('0x19');var _0x11c675=_0x4a9f83['count'];var _0x558485=_0x4c2681?0x0:_0x19d9a4['offset'];var _0x2dbab0=_0x4c2681?_0x4a9f83[_0x4b34('0x1b')]:_0x19d9a4['offset']+_0x19d9a4[_0x4b34('0x1a')];var _0x15762c;if(_0x2dbab0>=_0x11c675){_0x2dbab0=_0x11c675;_0x15762c=0xc8;}else{_0x15762c=0xce;}_0x10ac9c[_0x4b34('0x16')](_0x15762c);return _0x10ac9c[_0x4b34('0x1c')](_0x4b34('0x1d'),_0x558485+'-'+_0x2dbab0+'/'+_0x11c675)[_0x4b34('0x1e')](_0x4a9f83);}return null;};}function patchUpdates(_0x8701a7){return function(_0x5202c2){try{jsonpatch['apply'](_0x5202c2,_0x8701a7,!![]);}catch(_0x4cb93f){return BPromise[_0x4b34('0x1f')](_0x4cb93f);}return _0x5202c2['save']();};}function saveUpdates(_0x267f25,_0x18931f){return function(_0x5c4bb4){if(_0x5c4bb4){return _0x5c4bb4[_0x4b34('0x20')](_0x267f25)[_0x4b34('0x21')](function(_0x2ad189){return _0x2ad189;});}return null;};}function removeEntity(_0x1fb5b3,_0x1d88b4){return function(_0x3bcba1){if(_0x3bcba1){return _0x3bcba1[_0x4b34('0x22')]()['then'](function(){var _0x1fb7fb=_0x3bcba1[_0x4b34('0x23')]({'plain':!![]});var _0x45256b=_0x4b34('0x24');return db[_0x4b34('0x25')]['destroy']({'where':{'type':_0x45256b,'resourceId':_0x1fb7fb['id']}})[_0x4b34('0x21')](function(){return _0x3bcba1;});})[_0x4b34('0x21')](function(){_0x1fb5b3[_0x4b34('0x16')](0xcc)[_0x4b34('0x17')]();});}};}function handleEntityNotFound(_0x2f7f5e,_0xc49f85){return function(_0x2144a2){if(!_0x2144a2){_0x2f7f5e[_0x4b34('0x15')](0x194);}return _0x2144a2;};}function handleError(_0xe491a5,_0x3f3da0){_0x3f3da0=_0x3f3da0||0x1f4;return function(_0x1a02aa){logger[_0x4b34('0x26')](_0x1a02aa[_0x4b34('0x27')]);if(_0x1a02aa[_0x4b34('0x28')]){delete _0x1a02aa['name'];}_0xe491a5[_0x4b34('0x16')](_0x3f3da0)[_0x4b34('0x29')](_0x1a02aa);};}exports[_0x4b34('0x2a')]=function(_0x37a011,_0xa37c30){var _0x155010={},_0x22c659={},_0xb875e7={'count':0x0,'rows':[]};var _0x473d73=_[_0x4b34('0x2b')](db['Disposition'][_0x4b34('0x2c')],function(_0x22cd51){return{'name':_0x22cd51['fieldName'],'type':_0x22cd51[_0x4b34('0x2d')][_0x4b34('0x2e')]};});_0x22c659[_0x4b34('0x2f')]=_['map'](_0x473d73,'name');_0x22c659[_0x4b34('0x30')]=_[_0x4b34('0x31')](_0x37a011[_0x4b34('0x30')]);_0x22c659[_0x4b34('0x32')]=_[_0x4b34('0x33')](_0x22c659['model'],_0x22c659['query']);_0x155010[_0x4b34('0x34')]=_[_0x4b34('0x33')](_0x22c659['model'],qs[_0x4b34('0x35')](_0x37a011[_0x4b34('0x30')][_0x4b34('0x35')]));_0x155010[_0x4b34('0x34')]=_0x155010['attributes'][_0x4b34('0x36')]?_0x155010[_0x4b34('0x34')]:_0x22c659['model'];if(!_0x37a011[_0x4b34('0x30')][_0x4b34('0x37')](_0x4b34('0x38'))){_0x155010[_0x4b34('0x1a')]=qs[_0x4b34('0x1a')](_0x37a011[_0x4b34('0x30')][_0x4b34('0x1a')]);_0x155010[_0x4b34('0x18')]=qs[_0x4b34('0x18')](_0x37a011[_0x4b34('0x30')][_0x4b34('0x18')]);}_0x155010[_0x4b34('0x39')]=qs[_0x4b34('0x3a')](_0x37a011[_0x4b34('0x30')][_0x4b34('0x3a')]);_0x155010[_0x4b34('0x3b')]=qs[_0x4b34('0x32')](_['pick'](_0x37a011[_0x4b34('0x30')],_0x22c659[_0x4b34('0x32')]),_0x473d73);if(_0x37a011[_0x4b34('0x30')][_0x4b34('0x3c')]){_0x155010[_0x4b34('0x3b')]=_[_0x4b34('0x3d')](_0x155010[_0x4b34('0x3b')],{'$or':_['map'](_0x473d73,function(_0x15ff54){if(_0x15ff54[_0x4b34('0x2d')]!==_0x4b34('0x3e')){var _0x182b84={};_0x182b84[_0x15ff54[_0x4b34('0x28')]]={'$like':'%'+_0x37a011[_0x4b34('0x30')][_0x4b34('0x3c')]+'%'};return _0x182b84;}})});}_0x155010=_[_0x4b34('0x3d')]({},_0x155010,_0x37a011[_0x4b34('0x3f')]);var _0x3dc5d6={'where':_0x155010[_0x4b34('0x3b')]};return db[_0x4b34('0x40')][_0x4b34('0x1b')](_0x3dc5d6)[_0x4b34('0x21')](function(_0x1ae353){_0xb875e7['count']=_0x1ae353;if(_0x37a011[_0x4b34('0x30')][_0x4b34('0x41')]){_0x155010[_0x4b34('0x42')]=[{'all':!![]}];}return db[_0x4b34('0x40')][_0x4b34('0x43')](_0x155010);})['then'](function(_0x40be2e){_0xb875e7[_0x4b34('0x44')]=_0x40be2e;return _0xb875e7;})[_0x4b34('0x21')](respondWithFilteredResult(_0xa37c30,_0x155010))[_0x4b34('0x45')](handleError(_0xa37c30,null));};exports[_0x4b34('0x46')]=function(_0x474c49,_0x322b15){var _0x3d29eb={'raw':!![],'where':{'id':_0x474c49[_0x4b34('0x47')]['id']}},_0x4f9eee={};_0x4f9eee[_0x4b34('0x2f')]=_[_0x4b34('0x31')](db[_0x4b34('0x40')][_0x4b34('0x2c')]);_0x4f9eee[_0x4b34('0x30')]=_['keys'](_0x474c49['query']);_0x4f9eee[_0x4b34('0x32')]=_['intersection'](_0x4f9eee['model'],_0x4f9eee[_0x4b34('0x30')]);_0x3d29eb['attributes']=_[_0x4b34('0x33')](_0x4f9eee[_0x4b34('0x2f')],qs[_0x4b34('0x35')](_0x474c49[_0x4b34('0x30')]['fields']));_0x3d29eb[_0x4b34('0x34')]=_0x3d29eb[_0x4b34('0x34')][_0x4b34('0x36')]?_0x3d29eb[_0x4b34('0x34')]:_0x4f9eee[_0x4b34('0x2f')];if(_0x474c49[_0x4b34('0x30')][_0x4b34('0x41')]){_0x3d29eb[_0x4b34('0x42')]=[{'all':!![]}];}_0x3d29eb=_[_0x4b34('0x3d')]({},_0x3d29eb,_0x474c49[_0x4b34('0x3f')]);return db[_0x4b34('0x40')][_0x4b34('0x48')](_0x3d29eb)[_0x4b34('0x21')](handleEntityNotFound(_0x322b15,null))[_0x4b34('0x21')](respondWithResult(_0x322b15,null))['catch'](handleError(_0x322b15,null));};exports[_0x4b34('0x49')]=function(_0x497baa,_0x2367ef){return db[_0x4b34('0x40')][_0x4b34('0x49')](_0x497baa['body'],{})[_0x4b34('0x21')](function(_0x36e69f){var _0x355170=_0x497baa[_0x4b34('0x4a')][_0x4b34('0x23')]({'plain':!![]});if(!_0x355170)throw new Error(_0x4b34('0x4b'));if(_0x355170[_0x4b34('0x4c')]===_0x4b34('0x4a')){var _0x5be650=_0x36e69f[_0x4b34('0x23')]({'plain':!![]});var _0x4dd297=_0x4b34('0x24');return db[_0x4b34('0x4d')][_0x4b34('0x48')]({'where':{'name':_0x4dd297,'userProfileId':_0x355170[_0x4b34('0x4e')]},'raw':!![]})[_0x4b34('0x21')](function(_0x101f57){if(_0x101f57&&_0x101f57[_0x4b34('0x4f')]===0x0){return db[_0x4b34('0x25')][_0x4b34('0x49')]({'name':_0x5be650[_0x4b34('0x28')],'resourceId':_0x5be650['id'],'type':_0x101f57[_0x4b34('0x28')],'sectionId':_0x101f57['id']},{})['then'](function(){return _0x36e69f;});}else{return _0x36e69f;}})[_0x4b34('0x45')](function(_0x32263f){logger[_0x4b34('0x26')](_0x4b34('0x50'),_0x32263f);throw _0x32263f;});}return _0x36e69f;})['then'](respondWithResult(_0x2367ef,0xc9))[_0x4b34('0x45')](handleError(_0x2367ef,null));};exports['update']=function(_0x1d4ff3,_0x1fc90c){if(_0x1d4ff3[_0x4b34('0x51')]['id']){delete _0x1d4ff3[_0x4b34('0x51')]['id'];}return db[_0x4b34('0x40')][_0x4b34('0x48')]({'where':{'id':_0x1d4ff3['params']['id']}})[_0x4b34('0x21')](handleEntityNotFound(_0x1fc90c,null))[_0x4b34('0x21')](saveUpdates(_0x1d4ff3[_0x4b34('0x51')],null))[_0x4b34('0x21')](respondWithResult(_0x1fc90c,null))[_0x4b34('0x45')](handleError(_0x1fc90c,null));};exports['destroy']=function(_0x525f5d,_0x2ef86b){return db[_0x4b34('0x40')]['find']({'where':{'id':_0x525f5d[_0x4b34('0x47')]['id']}})[_0x4b34('0x21')](handleEntityNotFound(_0x2ef86b,null))[_0x4b34('0x21')](removeEntity(_0x2ef86b,null))['catch'](handleError(_0x2ef86b,null));};