e7fa753425b851a2ead87cd65454a6a9e675758b
[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 _0xed61=['sox','to-csv','ejs','lodash','squel','jsforce','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','set','Content-Range','json','apply','reject','save','then','destroy','get','Dispositions','UserProfileResource','error','stack','name','send','map','Disposition','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','limit','order','where','pick','filter','merge','VIRTUAL','count','includeAll','include','rows','catch','show','params','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache'];(function(_0x5cab28,_0x307622){var _0xa3554d=function(_0x330139){while(--_0x330139){_0x5cab28['push'](_0x5cab28['shift']());}};_0xa3554d(++_0x307622);}(_0xed61,0x135));var _0x1ed6=function(_0x503ba3,_0x70f5df){_0x503ba3=_0x503ba3-0x0;var _0x2991cf=_0xed61[_0x503ba3];return _0x2991cf;};'use strict';var pdf=require(_0x1ed6('0x0'));var emlformat=require(_0x1ed6('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x1ed6('0x2'));var jsonpatch=require(_0x1ed6('0x3'));var rp=require(_0x1ed6('0x4'));var moment=require(_0x1ed6('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x1ed6('0x6'));var util=require('util');var path=require('path');var sox=require(_0x1ed6('0x7'));var csv=require(_0x1ed6('0x8'));var ejs=require(_0x1ed6('0x9'));var fs=require('fs');var _=require(_0x1ed6('0xa'));var squel=require(_0x1ed6('0xb'));var crypto=require('crypto');var jsforce=require(_0x1ed6('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x1ed6('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x1ed6('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x1ed6('0xe'));var as=require(_0x1ed6('0xf'));var hardwareService=require(_0x1ed6('0x10'));var logger=require(_0x1ed6('0x11'))('api');var utils=require(_0x1ed6('0x12'));var config=require(_0x1ed6('0x13'));var licenseUtil=require(_0x1ed6('0x14'));var db=require(_0x1ed6('0x15'))['db'];function respondWithStatusCode(_0x2fe640,_0x3af303){_0x3af303=_0x3af303||0xcc;return function(_0x50de06){if(_0x50de06){return _0x2fe640[_0x1ed6('0x16')](_0x3af303);}return _0x2fe640[_0x1ed6('0x17')](_0x3af303)[_0x1ed6('0x18')]();};}function respondWithResult(_0x36f0ff,_0x598dd8){_0x598dd8=_0x598dd8||0xc8;return function(_0x548d14){if(_0x548d14){return _0x36f0ff[_0x1ed6('0x17')](_0x598dd8)['json'](_0x548d14);}};}function respondWithFilteredResult(_0x2ea522,_0x5602a3){return function(_0x11b2ac){if(_0x11b2ac){var _0x207283=_0x11b2ac['count'],_0x25f775=_0x5602a3[_0x1ed6('0x19')],_0x1139a3=_0x5602a3[_0x1ed6('0x19')]+_0x5602a3['limit'],_0x35bf91;if(_0x1139a3>=_0x207283){_0x1139a3=_0x207283;_0x35bf91=0xc8;}else{_0x35bf91=0xce;}_0x2ea522[_0x1ed6('0x17')](_0x35bf91);return _0x2ea522[_0x1ed6('0x1a')](_0x1ed6('0x1b'),_0x25f775+'-'+_0x1139a3+'/'+_0x207283)[_0x1ed6('0x1c')](_0x11b2ac);}return null;};}function patchUpdates(_0x2103ba){return function(_0x8c4c22){try{jsonpatch[_0x1ed6('0x1d')](_0x8c4c22,_0x2103ba,!![]);}catch(_0x359bc6){return BPromise[_0x1ed6('0x1e')](_0x359bc6);}return _0x8c4c22[_0x1ed6('0x1f')]();};}function saveUpdates(_0xe49909,_0x149a84){return function(_0x415b90){if(_0x415b90){return _0x415b90['update'](_0xe49909)[_0x1ed6('0x20')](function(_0x50f094){return _0x50f094;});}return null;};}function removeEntity(_0x3b7b45,_0x32feda){return function(_0x48ba39){if(_0x48ba39){return _0x48ba39[_0x1ed6('0x21')]()[_0x1ed6('0x20')](function(){var _0x6d95ca=_0x48ba39[_0x1ed6('0x22')]({'plain':!![]});var _0x3cb225=_0x1ed6('0x23');return db[_0x1ed6('0x24')][_0x1ed6('0x21')]({'where':{'type':_0x3cb225,'resourceId':_0x6d95ca['id']}})[_0x1ed6('0x20')](function(){return _0x48ba39;});})[_0x1ed6('0x20')](function(){_0x3b7b45[_0x1ed6('0x17')](0xcc)[_0x1ed6('0x18')]();});}};}function handleEntityNotFound(_0x858e72,_0x546624){return function(_0x4d3657){if(!_0x4d3657){_0x858e72[_0x1ed6('0x16')](0x194);}return _0x4d3657;};}function handleError(_0x4c2ce5,_0x115f91){_0x115f91=_0x115f91||0x1f4;return function(_0x4ef0ec){logger[_0x1ed6('0x25')](_0x4ef0ec[_0x1ed6('0x26')]);if(_0x4ef0ec[_0x1ed6('0x27')]){delete _0x4ef0ec['name'];}_0x4c2ce5[_0x1ed6('0x17')](_0x115f91)[_0x1ed6('0x28')](_0x4ef0ec);};}exports['index']=function(_0x43e09b,_0x4a8615){var _0xc53834={},_0x1b49ad={},_0x48a6f5={'count':0x0,'rows':[]};var _0x42977a=_[_0x1ed6('0x29')](db[_0x1ed6('0x2a')][_0x1ed6('0x2b')],function(_0x416a67){return{'name':_0x416a67[_0x1ed6('0x2c')],'type':_0x416a67[_0x1ed6('0x2d')][_0x1ed6('0x2e')]};});_0x1b49ad[_0x1ed6('0x2f')]=_[_0x1ed6('0x29')](_0x42977a,'name');_0x1b49ad[_0x1ed6('0x30')]=_[_0x1ed6('0x31')](_0x43e09b['query']);_0x1b49ad[_0x1ed6('0x32')]=_[_0x1ed6('0x33')](_0x1b49ad[_0x1ed6('0x2f')],_0x1b49ad[_0x1ed6('0x30')]);_0xc53834['attributes']=_[_0x1ed6('0x33')](_0x1b49ad['model'],qs[_0x1ed6('0x34')](_0x43e09b[_0x1ed6('0x30')][_0x1ed6('0x34')]));_0xc53834[_0x1ed6('0x35')]=_0xc53834['attributes'][_0x1ed6('0x36')]?_0xc53834[_0x1ed6('0x35')]:_0x1b49ad[_0x1ed6('0x2f')];if(!_0x43e09b[_0x1ed6('0x30')][_0x1ed6('0x37')]('nolimit')){_0xc53834[_0x1ed6('0x38')]=qs['limit'](_0x43e09b[_0x1ed6('0x30')][_0x1ed6('0x38')]);_0xc53834[_0x1ed6('0x19')]=qs[_0x1ed6('0x19')](_0x43e09b[_0x1ed6('0x30')]['offset']);}_0xc53834[_0x1ed6('0x39')]=qs['sort'](_0x43e09b[_0x1ed6('0x30')]['sort']);_0xc53834[_0x1ed6('0x3a')]=qs['filters'](_[_0x1ed6('0x3b')](_0x43e09b['query'],_0x1b49ad['filters']),_0x42977a);if(_0x43e09b['query'][_0x1ed6('0x3c')]){_0xc53834[_0x1ed6('0x3a')]=_[_0x1ed6('0x3d')](_0xc53834[_0x1ed6('0x3a')],{'$or':_[_0x1ed6('0x29')](_0x42977a,function(_0x4da9fe){if(_0x4da9fe[_0x1ed6('0x2d')]!==_0x1ed6('0x3e')){var _0x3c7d6a={};_0x3c7d6a[_0x4da9fe[_0x1ed6('0x27')]]={'$like':'%'+_0x43e09b[_0x1ed6('0x30')]['filter']+'%'};return _0x3c7d6a;}})});}_0xc53834=_[_0x1ed6('0x3d')]({},_0xc53834,_0x43e09b['options']);var _0x2b57fb={'where':_0xc53834[_0x1ed6('0x3a')]};return db[_0x1ed6('0x2a')][_0x1ed6('0x3f')](_0x2b57fb)[_0x1ed6('0x20')](function(_0x55e56f){_0x48a6f5[_0x1ed6('0x3f')]=_0x55e56f;if(_0x43e09b[_0x1ed6('0x30')][_0x1ed6('0x40')]){_0xc53834[_0x1ed6('0x41')]=[{'all':!![]}];}return db[_0x1ed6('0x2a')]['findAll'](_0xc53834);})[_0x1ed6('0x20')](function(_0x2ef6ca){_0x48a6f5[_0x1ed6('0x42')]=_0x2ef6ca;return _0x48a6f5;})[_0x1ed6('0x20')](respondWithFilteredResult(_0x4a8615,_0xc53834))[_0x1ed6('0x43')](handleError(_0x4a8615,null));};exports[_0x1ed6('0x44')]=function(_0x281366,_0x687702){var _0x1566f2={'raw':!![],'where':{'id':_0x281366[_0x1ed6('0x45')]['id']}},_0x1722d7={};_0x1722d7[_0x1ed6('0x2f')]=_[_0x1ed6('0x31')](db['Disposition'][_0x1ed6('0x2b')]);_0x1722d7[_0x1ed6('0x30')]=_[_0x1ed6('0x31')](_0x281366[_0x1ed6('0x30')]);_0x1722d7[_0x1ed6('0x32')]=_[_0x1ed6('0x33')](_0x1722d7[_0x1ed6('0x2f')],_0x1722d7[_0x1ed6('0x30')]);_0x1566f2['attributes']=_[_0x1ed6('0x33')](_0x1722d7[_0x1ed6('0x2f')],qs['fields'](_0x281366['query']['fields']));_0x1566f2[_0x1ed6('0x35')]=_0x1566f2[_0x1ed6('0x35')][_0x1ed6('0x36')]?_0x1566f2['attributes']:_0x1722d7[_0x1ed6('0x2f')];if(_0x281366[_0x1ed6('0x30')][_0x1ed6('0x40')]){_0x1566f2[_0x1ed6('0x41')]=[{'all':!![]}];}_0x1566f2=_[_0x1ed6('0x3d')]({},_0x1566f2,_0x281366['options']);return db['Disposition'][_0x1ed6('0x46')](_0x1566f2)[_0x1ed6('0x20')](handleEntityNotFound(_0x687702,null))[_0x1ed6('0x20')](respondWithResult(_0x687702,null))['catch'](handleError(_0x687702,null));};exports[_0x1ed6('0x47')]=function(_0x3ca008,_0x338711){return db['Disposition'][_0x1ed6('0x47')](_0x3ca008['body'],{})[_0x1ed6('0x20')](function(_0x226ad8){var _0x46e1cd=_0x3ca008[_0x1ed6('0x48')][_0x1ed6('0x22')]({'plain':!![]});if(!_0x46e1cd)throw new Error(_0x1ed6('0x49'));if(_0x46e1cd[_0x1ed6('0x4a')]===_0x1ed6('0x48')){var _0x31949b=_0x226ad8['get']({'plain':!![]});var _0x41a468=_0x1ed6('0x23');return db[_0x1ed6('0x4b')][_0x1ed6('0x46')]({'where':{'name':_0x41a468,'userProfileId':_0x46e1cd[_0x1ed6('0x4c')]},'raw':!![]})[_0x1ed6('0x20')](function(_0x3f4826){if(_0x3f4826&&_0x3f4826['autoAssociation']===0x0){return db[_0x1ed6('0x24')]['create']({'name':_0x31949b[_0x1ed6('0x27')],'resourceId':_0x31949b['id'],'type':_0x3f4826['name'],'sectionId':_0x3f4826['id']},{})[_0x1ed6('0x20')](function(){return _0x226ad8;});}else{return _0x226ad8;}})[_0x1ed6('0x43')](function(_0x285672){logger[_0x1ed6('0x25')](_0x1ed6('0x4d'),_0x285672);throw _0x285672;});}return _0x226ad8;})[_0x1ed6('0x20')](respondWithResult(_0x338711,0xc9))[_0x1ed6('0x43')](handleError(_0x338711,null));};exports['update']=function(_0x3f8e28,_0x40a4a9){if(_0x3f8e28[_0x1ed6('0x4e')]['id']){delete _0x3f8e28[_0x1ed6('0x4e')]['id'];}return db['Disposition'][_0x1ed6('0x46')]({'where':{'id':_0x3f8e28['params']['id']}})['then'](handleEntityNotFound(_0x40a4a9,null))['then'](saveUpdates(_0x3f8e28[_0x1ed6('0x4e')],null))['then'](respondWithResult(_0x40a4a9,null))[_0x1ed6('0x43')](handleError(_0x40a4a9,null));};exports[_0x1ed6('0x21')]=function(_0x2c41e9,_0x4fb3ff){return db[_0x1ed6('0x2a')][_0x1ed6('0x46')]({'where':{'id':_0x2c41e9['params']['id']}})['then'](handleEntityNotFound(_0x4fb3ff,null))[_0x1ed6('0x20')](removeEntity(_0x4fb3ff,null))[_0x1ed6('0x43')](handleError(_0x4fb3ff,null));};