a50a52c04013e099997336e28de02fcfe997d5aa
[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 _0x1702=['rawAttributes','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','Dispositions','UserProfileResource','stack','name','index','map','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','VIRTUAL','filter','merge','options','Disposition','includeAll','findAll','rows','catch','show','params'];(function(_0x3511d3,_0x4107ae){var _0x5d6321=function(_0x1a23da){while(--_0x1a23da){_0x3511d3['push'](_0x3511d3['shift']());}};_0x5d6321(++_0x4107ae);}(_0x1702,0x114));var _0x2170=function(_0x176975,_0xb723d1){_0x176975=_0x176975-0x0;var _0x5235ec=_0x1702[_0x176975];return _0x5235ec;};'use strict';var emlformat=require(_0x2170('0x0'));var rimraf=require(_0x2170('0x1'));var zipdir=require(_0x2170('0x2'));var jsonpatch=require(_0x2170('0x3'));var rp=require(_0x2170('0x4'));var moment=require(_0x2170('0x5'));var BPromise=require(_0x2170('0x6'));var Mustache=require(_0x2170('0x7'));var util=require('util');var path=require(_0x2170('0x8'));var sox=require(_0x2170('0x9'));var csv=require(_0x2170('0xa'));var ejs=require(_0x2170('0xb'));var fs=require('fs');var fs_extra=require(_0x2170('0xc'));var _=require('lodash');var squel=require(_0x2170('0xd'));var crypto=require(_0x2170('0xe'));var jsforce=require(_0x2170('0xf'));var deskjs=require(_0x2170('0x10'));var toCsv=require(_0x2170('0xa'));var querystring=require(_0x2170('0x11'));var Papa=require('papaparse');var Redis=require(_0x2170('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x2170('0x13'));var hardwareService=require(_0x2170('0x14'));var logger=require(_0x2170('0x15'))(_0x2170('0x16'));var utils=require(_0x2170('0x17'));var config=require(_0x2170('0x18'));var licenseUtil=require(_0x2170('0x19'));var db=require(_0x2170('0x1a'))['db'];function respondWithStatusCode(_0x4395aa,_0x5f0990){_0x5f0990=_0x5f0990||0xcc;return function(_0x4762bf){if(_0x4762bf){return _0x4395aa[_0x2170('0x1b')](_0x5f0990);}return _0x4395aa[_0x2170('0x1c')](_0x5f0990)[_0x2170('0x1d')]();};}function respondWithResult(_0x445c74,_0x575f43){_0x575f43=_0x575f43||0xc8;return function(_0x1ebdfa){if(_0x1ebdfa){return _0x445c74['status'](_0x575f43)[_0x2170('0x1e')](_0x1ebdfa);}};}function respondWithFilteredResult(_0x578521,_0x5cf6f5){return function(_0x19ec32){if(_0x19ec32){var _0x1942bd=typeof _0x5cf6f5[_0x2170('0x1f')]===_0x2170('0x20')&&typeof _0x5cf6f5[_0x2170('0x21')]===_0x2170('0x20');var _0x462bd8=_0x19ec32[_0x2170('0x22')];var _0x1d516a=_0x1942bd?0x0:_0x5cf6f5[_0x2170('0x1f')];var _0x222d8d=_0x1942bd?_0x19ec32[_0x2170('0x22')]:_0x5cf6f5['offset']+_0x5cf6f5[_0x2170('0x21')];var _0x1ca5d1;if(_0x222d8d>=_0x462bd8){_0x222d8d=_0x462bd8;_0x1ca5d1=0xc8;}else{_0x1ca5d1=0xce;}_0x578521[_0x2170('0x1c')](_0x1ca5d1);return _0x578521[_0x2170('0x23')](_0x2170('0x24'),_0x1d516a+'-'+_0x222d8d+'/'+_0x462bd8)[_0x2170('0x1e')](_0x19ec32);}return null;};}function patchUpdates(_0x49c27d){return function(_0x2594ba){try{jsonpatch[_0x2170('0x25')](_0x2594ba,_0x49c27d,!![]);}catch(_0x1d1f9c){return BPromise[_0x2170('0x26')](_0x1d1f9c);}return _0x2594ba[_0x2170('0x27')]();};}function saveUpdates(_0x1ea712,_0x5679fd){return function(_0x308fd3){if(_0x308fd3){return _0x308fd3[_0x2170('0x28')](_0x1ea712)['then'](function(_0x19d64a){return _0x19d64a;});}return null;};}function removeEntity(_0x26c9b6,_0x4c8dfe){return function(_0x23d365){if(_0x23d365){return _0x23d365[_0x2170('0x29')]()[_0x2170('0x2a')](function(){var _0xb3500e=_0x23d365['get']({'plain':!![]});var _0x168b28=_0x2170('0x2b');return db[_0x2170('0x2c')][_0x2170('0x29')]({'where':{'type':_0x168b28,'resourceId':_0xb3500e['id']}})['then'](function(){return _0x23d365;});})[_0x2170('0x2a')](function(){_0x26c9b6[_0x2170('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x223eb2,_0x57bace){return function(_0x34a1aa){if(!_0x34a1aa){_0x223eb2['sendStatus'](0x194);}return _0x34a1aa;};}function handleError(_0x3bdb99,_0x42a03f){_0x42a03f=_0x42a03f||0x1f4;return function(_0x5b43ca){logger['error'](_0x5b43ca[_0x2170('0x2d')]);if(_0x5b43ca[_0x2170('0x2e')]){delete _0x5b43ca[_0x2170('0x2e')];}_0x3bdb99[_0x2170('0x1c')](_0x42a03f)['send'](_0x5b43ca);};}exports[_0x2170('0x2f')]=function(_0x21d490,_0x75f816){var _0x35213f={},_0x38bb8b={},_0x533869={'count':0x0,'rows':[]};var _0x5b4230=_[_0x2170('0x30')](db['Disposition']['rawAttributes'],function(_0x4f2e08){return{'name':_0x4f2e08[_0x2170('0x31')],'type':_0x4f2e08[_0x2170('0x32')][_0x2170('0x33')]};});_0x38bb8b[_0x2170('0x34')]=_[_0x2170('0x30')](_0x5b4230,_0x2170('0x2e'));_0x38bb8b[_0x2170('0x35')]=_[_0x2170('0x36')](_0x21d490['query']);_0x38bb8b[_0x2170('0x37')]=_[_0x2170('0x38')](_0x38bb8b[_0x2170('0x34')],_0x38bb8b[_0x2170('0x35')]);_0x35213f[_0x2170('0x39')]=_[_0x2170('0x38')](_0x38bb8b[_0x2170('0x34')],qs['fields'](_0x21d490[_0x2170('0x35')][_0x2170('0x3a')]));_0x35213f['attributes']=_0x35213f['attributes'][_0x2170('0x3b')]?_0x35213f['attributes']:_0x38bb8b[_0x2170('0x34')];if(!_0x21d490[_0x2170('0x35')][_0x2170('0x3c')](_0x2170('0x3d'))){_0x35213f[_0x2170('0x21')]=qs['limit'](_0x21d490[_0x2170('0x35')][_0x2170('0x21')]);_0x35213f[_0x2170('0x1f')]=qs[_0x2170('0x1f')](_0x21d490['query'][_0x2170('0x1f')]);}_0x35213f[_0x2170('0x3e')]=qs[_0x2170('0x3f')](_0x21d490[_0x2170('0x35')][_0x2170('0x3f')]);_0x35213f[_0x2170('0x40')]=qs[_0x2170('0x37')](_['pick'](_0x21d490['query'],_0x38bb8b[_0x2170('0x37')]),_0x5b4230);if(_0x21d490[_0x2170('0x35')]['filter']){_0x35213f['where']=_['merge'](_0x35213f[_0x2170('0x40')],{'$or':_['map'](_0x5b4230,function(_0x1d5025){if(_0x1d5025[_0x2170('0x32')]!==_0x2170('0x41')){var _0x549954={};_0x549954[_0x1d5025[_0x2170('0x2e')]]={'$like':'%'+_0x21d490[_0x2170('0x35')][_0x2170('0x42')]+'%'};return _0x549954;}})});}_0x35213f=_[_0x2170('0x43')]({},_0x35213f,_0x21d490[_0x2170('0x44')]);var _0x2d807d={'where':_0x35213f[_0x2170('0x40')]};return db[_0x2170('0x45')][_0x2170('0x22')](_0x2d807d)[_0x2170('0x2a')](function(_0x18810b){_0x533869['count']=_0x18810b;if(_0x21d490[_0x2170('0x35')][_0x2170('0x46')]){_0x35213f['include']=[{'all':!![]}];}return db[_0x2170('0x45')][_0x2170('0x47')](_0x35213f);})[_0x2170('0x2a')](function(_0x1ee374){_0x533869[_0x2170('0x48')]=_0x1ee374;return _0x533869;})[_0x2170('0x2a')](respondWithFilteredResult(_0x75f816,_0x35213f))[_0x2170('0x49')](handleError(_0x75f816,null));};exports[_0x2170('0x4a')]=function(_0x16da73,_0x3937c4){var _0x2a83ae={'raw':!![],'where':{'id':_0x16da73[_0x2170('0x4b')]['id']}},_0x3d4a43={};_0x3d4a43[_0x2170('0x34')]=_[_0x2170('0x36')](db[_0x2170('0x45')][_0x2170('0x4c')]);_0x3d4a43[_0x2170('0x35')]=_[_0x2170('0x36')](_0x16da73[_0x2170('0x35')]);_0x3d4a43['filters']=_[_0x2170('0x38')](_0x3d4a43[_0x2170('0x34')],_0x3d4a43[_0x2170('0x35')]);_0x2a83ae[_0x2170('0x39')]=_['intersection'](_0x3d4a43[_0x2170('0x34')],qs[_0x2170('0x3a')](_0x16da73[_0x2170('0x35')][_0x2170('0x3a')]));_0x2a83ae[_0x2170('0x39')]=_0x2a83ae[_0x2170('0x39')]['length']?_0x2a83ae['attributes']:_0x3d4a43[_0x2170('0x34')];if(_0x16da73[_0x2170('0x35')][_0x2170('0x46')]){_0x2a83ae['include']=[{'all':!![]}];}_0x2a83ae=_[_0x2170('0x43')]({},_0x2a83ae,_0x16da73['options']);return db[_0x2170('0x45')][_0x2170('0x4d')](_0x2a83ae)[_0x2170('0x2a')](handleEntityNotFound(_0x3937c4,null))['then'](respondWithResult(_0x3937c4,null))[_0x2170('0x49')](handleError(_0x3937c4,null));};exports[_0x2170('0x4e')]=function(_0xaf0123,_0x18bc2c){return db['Disposition'][_0x2170('0x4e')](_0xaf0123[_0x2170('0x4f')],{})[_0x2170('0x2a')](function(_0x263905){var _0x1c2a91=_0xaf0123['user'][_0x2170('0x50')]({'plain':!![]});if(!_0x1c2a91)throw new Error(_0x2170('0x51'));if(_0x1c2a91[_0x2170('0x52')]===_0x2170('0x53')){var _0xf72c68=_0x263905['get']({'plain':!![]});var _0x13fb91='Dispositions';return db[_0x2170('0x54')][_0x2170('0x4d')]({'where':{'name':_0x13fb91,'userProfileId':_0x1c2a91[_0x2170('0x55')]},'raw':!![]})[_0x2170('0x2a')](function(_0x2cb660){if(_0x2cb660&&_0x2cb660['autoAssociation']===0x0){return db['UserProfileResource'][_0x2170('0x4e')]({'name':_0xf72c68[_0x2170('0x2e')],'resourceId':_0xf72c68['id'],'type':_0x2cb660[_0x2170('0x2e')],'sectionId':_0x2cb660['id']},{})['then'](function(){return _0x263905;});}else{return _0x263905;}})[_0x2170('0x49')](function(_0x1337a5){logger[_0x2170('0x56')](_0x2170('0x57'),_0x1337a5);throw _0x1337a5;});}return _0x263905;})[_0x2170('0x2a')](respondWithResult(_0x18bc2c,0xc9))[_0x2170('0x49')](handleError(_0x18bc2c,null));};exports['update']=function(_0xf0f844,_0x5cc6a3){if(_0xf0f844[_0x2170('0x4f')]['id']){delete _0xf0f844[_0x2170('0x4f')]['id'];}return db['Disposition']['find']({'where':{'id':_0xf0f844['params']['id']}})[_0x2170('0x2a')](handleEntityNotFound(_0x5cc6a3,null))[_0x2170('0x2a')](saveUpdates(_0xf0f844['body'],null))['then'](respondWithResult(_0x5cc6a3,null))['catch'](handleError(_0x5cc6a3,null));};exports[_0x2170('0x29')]=function(_0x83ee6a,_0x418589){return db[_0x2170('0x45')]['find']({'where':{'id':_0x83ee6a['params']['id']}})['then'](handleEntityNotFound(_0x418589,null))['then'](removeEntity(_0x418589,null))[_0x2170('0x49')](handleError(_0x418589,null));};