69a357b8e2b44e40264b912a19e510cecd42ccc5
[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 _0xeece=['length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','keys','rawAttributes','options','Disposition','find','create','body','user','get','role','UserProfileSection','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','ejs','fs-extra','lodash','crypto','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','reject','update','then','destroy','Dispositions','UserProfileResource','error','stack','name','send','map','fieldName','type','key','model','query','intersection','attributes','fields'];(function(_0x4afc2c,_0x336a88){var _0x164084=function(_0x14b783){while(--_0x14b783){_0x4afc2c['push'](_0x4afc2c['shift']());}};_0x164084(++_0x336a88);}(_0xeece,0x159));var _0xeeec=function(_0x1bf00c,_0x3bd793){_0x1bf00c=_0x1bf00c-0x0;var _0x476b5c=_0xeece[_0x1bf00c];return _0x476b5c;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xeeec('0x0'));var zipdir=require(_0xeeec('0x1'));var jsonpatch=require(_0xeeec('0x2'));var rp=require('request-promise');var moment=require(_0xeeec('0x3'));var BPromise=require(_0xeeec('0x4'));var Mustache=require(_0xeeec('0x5'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xeeec('0x6'));var fs=require('fs');var fs_extra=require(_0xeeec('0x7'));var _=require(_0xeeec('0x8'));var squel=require('squel');var crypto=require(_0xeeec('0x9'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xeeec('0xa'));var Redis=require(_0xeeec('0xb'));var authService=require(_0xeeec('0xc'));var qs=require(_0xeeec('0xd'));var as=require(_0xeeec('0xe'));var hardwareService=require(_0xeeec('0xf'));var logger=require('../../config/logger')(_0xeeec('0x10'));var utils=require(_0xeeec('0x11'));var config=require(_0xeeec('0x12'));var licenseUtil=require(_0xeeec('0x13'));var db=require(_0xeeec('0x14'))['db'];function respondWithStatusCode(_0xe90afa,_0x72307c){_0x72307c=_0x72307c||0xcc;return function(_0x2a689e){if(_0x2a689e){return _0xe90afa[_0xeeec('0x15')](_0x72307c);}return _0xe90afa['status'](_0x72307c)[_0xeeec('0x16')]();};}function respondWithResult(_0x1938e6,_0x273464){_0x273464=_0x273464||0xc8;return function(_0x2af9f7){if(_0x2af9f7){return _0x1938e6[_0xeeec('0x17')](_0x273464)[_0xeeec('0x18')](_0x2af9f7);}};}function respondWithFilteredResult(_0x4cd7c4,_0xd110c9){return function(_0x3deeb7){if(_0x3deeb7){var _0xeb71f5=typeof _0xd110c9[_0xeeec('0x19')]===_0xeeec('0x1a')&&typeof _0xd110c9[_0xeeec('0x1b')]===_0xeeec('0x1a');var _0x28a811=_0x3deeb7[_0xeeec('0x1c')];var _0x58bae9=_0xeb71f5?0x0:_0xd110c9[_0xeeec('0x19')];var _0x976c57=_0xeb71f5?_0x3deeb7[_0xeeec('0x1c')]:_0xd110c9[_0xeeec('0x19')]+_0xd110c9['limit'];var _0x1e5da7;if(_0x976c57>=_0x28a811){_0x976c57=_0x28a811;_0x1e5da7=0xc8;}else{_0x1e5da7=0xce;}_0x4cd7c4[_0xeeec('0x17')](_0x1e5da7);return _0x4cd7c4[_0xeeec('0x1d')](_0xeeec('0x1e'),_0x58bae9+'-'+_0x976c57+'/'+_0x28a811)[_0xeeec('0x18')](_0x3deeb7);}return null;};}function patchUpdates(_0xed5764){return function(_0x1ebd7a){try{jsonpatch['apply'](_0x1ebd7a,_0xed5764,!![]);}catch(_0x36075d){return BPromise[_0xeeec('0x1f')](_0x36075d);}return _0x1ebd7a['save']();};}function saveUpdates(_0x4fdc30,_0x2c8e26){return function(_0x4a4b78){if(_0x4a4b78){return _0x4a4b78[_0xeeec('0x20')](_0x4fdc30)[_0xeeec('0x21')](function(_0x16a4ce){return _0x16a4ce;});}return null;};}function removeEntity(_0x6224aa,_0x48d71a){return function(_0x51b3d6){if(_0x51b3d6){return _0x51b3d6[_0xeeec('0x22')]()['then'](function(){var _0x26555e=_0x51b3d6['get']({'plain':!![]});var _0x5baa0c=_0xeeec('0x23');return db[_0xeeec('0x24')]['destroy']({'where':{'type':_0x5baa0c,'resourceId':_0x26555e['id']}})[_0xeeec('0x21')](function(){return _0x51b3d6;});})[_0xeeec('0x21')](function(){_0x6224aa[_0xeeec('0x17')](0xcc)[_0xeeec('0x16')]();});}};}function handleEntityNotFound(_0xbda65b,_0x50a22b){return function(_0x10cfbc){if(!_0x10cfbc){_0xbda65b[_0xeeec('0x15')](0x194);}return _0x10cfbc;};}function handleError(_0x3f72b9,_0x4a09cc){_0x4a09cc=_0x4a09cc||0x1f4;return function(_0x17fd5d){logger[_0xeeec('0x25')](_0x17fd5d[_0xeeec('0x26')]);if(_0x17fd5d[_0xeeec('0x27')]){delete _0x17fd5d['name'];}_0x3f72b9[_0xeeec('0x17')](_0x4a09cc)[_0xeeec('0x28')](_0x17fd5d);};}exports['index']=function(_0x54a305,_0x9716fc){var _0x1249ab={},_0x400a87={},_0x5cc204={'count':0x0,'rows':[]};var _0x303ad9=_[_0xeeec('0x29')](db['Disposition']['rawAttributes'],function(_0x5404ef){return{'name':_0x5404ef[_0xeeec('0x2a')],'type':_0x5404ef[_0xeeec('0x2b')][_0xeeec('0x2c')]};});_0x400a87[_0xeeec('0x2d')]=_[_0xeeec('0x29')](_0x303ad9,_0xeeec('0x27'));_0x400a87[_0xeeec('0x2e')]=_['keys'](_0x54a305[_0xeeec('0x2e')]);_0x400a87['filters']=_[_0xeeec('0x2f')](_0x400a87[_0xeeec('0x2d')],_0x400a87[_0xeeec('0x2e')]);_0x1249ab[_0xeeec('0x30')]=_[_0xeeec('0x2f')](_0x400a87[_0xeeec('0x2d')],qs[_0xeeec('0x31')](_0x54a305['query']['fields']));_0x1249ab[_0xeeec('0x30')]=_0x1249ab[_0xeeec('0x30')][_0xeeec('0x32')]?_0x1249ab[_0xeeec('0x30')]:_0x400a87['model'];if(!_0x54a305[_0xeeec('0x2e')][_0xeeec('0x33')](_0xeeec('0x34'))){_0x1249ab[_0xeeec('0x1b')]=qs['limit'](_0x54a305['query'][_0xeeec('0x1b')]);_0x1249ab[_0xeeec('0x19')]=qs[_0xeeec('0x19')](_0x54a305['query'][_0xeeec('0x19')]);}_0x1249ab[_0xeeec('0x35')]=qs[_0xeeec('0x36')](_0x54a305[_0xeeec('0x2e')][_0xeeec('0x36')]);_0x1249ab['where']=qs[_0xeeec('0x37')](_[_0xeeec('0x38')](_0x54a305[_0xeeec('0x2e')],_0x400a87[_0xeeec('0x37')]),_0x303ad9);if(_0x54a305[_0xeeec('0x2e')][_0xeeec('0x39')]){_0x1249ab[_0xeeec('0x3a')]=_[_0xeeec('0x3b')](_0x1249ab[_0xeeec('0x3a')],{'$or':_['map'](_0x303ad9,function(_0x6c7c8){if(_0x6c7c8[_0xeeec('0x2b')]!==_0xeeec('0x3c')){var _0x54c84a={};_0x54c84a[_0x6c7c8[_0xeeec('0x27')]]={'$like':'%'+_0x54a305[_0xeeec('0x2e')]['filter']+'%'};return _0x54c84a;}})});}_0x1249ab=_[_0xeeec('0x3b')]({},_0x1249ab,_0x54a305['options']);var _0x3318f1={'where':_0x1249ab[_0xeeec('0x3a')]};return db['Disposition'][_0xeeec('0x1c')](_0x3318f1)[_0xeeec('0x21')](function(_0x5ec51b){_0x5cc204[_0xeeec('0x1c')]=_0x5ec51b;if(_0x54a305['query'][_0xeeec('0x3d')]){_0x1249ab[_0xeeec('0x3e')]=[{'all':!![]}];}return db['Disposition'][_0xeeec('0x3f')](_0x1249ab);})[_0xeeec('0x21')](function(_0x30ce0c){_0x5cc204[_0xeeec('0x40')]=_0x30ce0c;return _0x5cc204;})[_0xeeec('0x21')](respondWithFilteredResult(_0x9716fc,_0x1249ab))[_0xeeec('0x41')](handleError(_0x9716fc,null));};exports[_0xeeec('0x42')]=function(_0x5a23ec,_0x5c6659){var _0x1358c5={'raw':!![],'where':{'id':_0x5a23ec[_0xeeec('0x43')]['id']}},_0x9ddce0={};_0x9ddce0[_0xeeec('0x2d')]=_[_0xeeec('0x44')](db['Disposition'][_0xeeec('0x45')]);_0x9ddce0[_0xeeec('0x2e')]=_[_0xeeec('0x44')](_0x5a23ec[_0xeeec('0x2e')]);_0x9ddce0[_0xeeec('0x37')]=_['intersection'](_0x9ddce0[_0xeeec('0x2d')],_0x9ddce0['query']);_0x1358c5['attributes']=_['intersection'](_0x9ddce0[_0xeeec('0x2d')],qs[_0xeeec('0x31')](_0x5a23ec[_0xeeec('0x2e')]['fields']));_0x1358c5[_0xeeec('0x30')]=_0x1358c5['attributes'][_0xeeec('0x32')]?_0x1358c5[_0xeeec('0x30')]:_0x9ddce0[_0xeeec('0x2d')];if(_0x5a23ec[_0xeeec('0x2e')]['includeAll']){_0x1358c5[_0xeeec('0x3e')]=[{'all':!![]}];}_0x1358c5=_['merge']({},_0x1358c5,_0x5a23ec[_0xeeec('0x46')]);return db[_0xeeec('0x47')][_0xeeec('0x48')](_0x1358c5)[_0xeeec('0x21')](handleEntityNotFound(_0x5c6659,null))[_0xeeec('0x21')](respondWithResult(_0x5c6659,null))[_0xeeec('0x41')](handleError(_0x5c6659,null));};exports[_0xeeec('0x49')]=function(_0x411f5f,_0x1fc528){return db[_0xeeec('0x47')][_0xeeec('0x49')](_0x411f5f[_0xeeec('0x4a')],{})[_0xeeec('0x21')](function(_0x1ca999){var _0x4e7b40=_0x411f5f[_0xeeec('0x4b')][_0xeeec('0x4c')]({'plain':!![]});if(!_0x4e7b40)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4e7b40[_0xeeec('0x4d')]===_0xeeec('0x4b')){var _0x19dcd9=_0x1ca999['get']({'plain':!![]});var _0x5b867b=_0xeeec('0x23');return db[_0xeeec('0x4e')]['find']({'where':{'name':_0x5b867b,'userProfileId':_0x4e7b40['userProfileId']},'raw':!![]})[_0xeeec('0x21')](function(_0x389f8e){if(_0x389f8e&&_0x389f8e['autoAssociation']===0x0){return db[_0xeeec('0x24')]['create']({'name':_0x19dcd9[_0xeeec('0x27')],'resourceId':_0x19dcd9['id'],'type':_0x389f8e[_0xeeec('0x27')],'sectionId':_0x389f8e['id']},{})[_0xeeec('0x21')](function(){return _0x1ca999;});}else{return _0x1ca999;}})[_0xeeec('0x41')](function(_0xb7b341){logger[_0xeeec('0x25')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xb7b341);throw _0xb7b341;});}return _0x1ca999;})[_0xeeec('0x21')](respondWithResult(_0x1fc528,0xc9))[_0xeeec('0x41')](handleError(_0x1fc528,null));};exports['update']=function(_0x442b99,_0x1c59a3){if(_0x442b99['body']['id']){delete _0x442b99[_0xeeec('0x4a')]['id'];}return db['Disposition'][_0xeeec('0x48')]({'where':{'id':_0x442b99['params']['id']}})[_0xeeec('0x21')](handleEntityNotFound(_0x1c59a3,null))[_0xeeec('0x21')](saveUpdates(_0x442b99[_0xeeec('0x4a')],null))[_0xeeec('0x21')](respondWithResult(_0x1c59a3,null))[_0xeeec('0x41')](handleError(_0x1c59a3,null));};exports[_0xeeec('0x22')]=function(_0x1b1db1,_0x1f710d){return db[_0xeeec('0x47')][_0xeeec('0x48')]({'where':{'id':_0x1b1db1[_0xeeec('0x43')]['id']}})[_0xeeec('0x21')](handleEntityNotFound(_0x1f710d,null))[_0xeeec('0x21')](removeEntity(_0x1f710d,null))[_0xeeec('0x41')](handleError(_0x1f710d,null));};