Built motion from commit 1ea47bf4.|2.6.34
[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 _0x90c5=['where','VIRTUAL','include','rows','catch','show','params','keys','merge','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','Dispositions','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','jsforce','desk.js','papaparse','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','offset','undefined','count','Content-Range','json','apply','reject','update','then','UserProfileResource','destroy','stack','name','send','index','map','Disposition','rawAttributes','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','filters'];(function(_0x258e30,_0x4ca146){var _0x382268=function(_0xa6142a){while(--_0xa6142a){_0x258e30['push'](_0x258e30['shift']());}};_0x382268(++_0x4ca146);}(_0x90c5,0x17e));var _0x590c=function(_0x29aa0d,_0x5cb114){_0x29aa0d=_0x29aa0d-0x0;var _0x2e33fe=_0x90c5[_0x29aa0d];return _0x2e33fe;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x590c('0x0'));var jsonpatch=require(_0x590c('0x1'));var rp=require(_0x590c('0x2'));var moment=require(_0x590c('0x3'));var BPromise=require(_0x590c('0x4'));var Mustache=require(_0x590c('0x5'));var util=require(_0x590c('0x6'));var path=require(_0x590c('0x7'));var sox=require(_0x590c('0x8'));var csv=require('to-csv');var ejs=require(_0x590c('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x590c('0xa'));var squel=require(_0x590c('0xb'));var crypto=require('crypto');var jsforce=require(_0x590c('0xc'));var deskjs=require(_0x590c('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x590c('0xe'));var Redis=require('ioredis');var authService=require(_0x590c('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x590c('0x10'));var logger=require('../../config/logger')(_0x590c('0x11'));var utils=require(_0x590c('0x12'));var config=require(_0x590c('0x13'));var licenseUtil=require(_0x590c('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x31cd51,_0x4d1d35){_0x4d1d35=_0x4d1d35||0xcc;return function(_0x6e23b1){if(_0x6e23b1){return _0x31cd51[_0x590c('0x15')](_0x4d1d35);}return _0x31cd51[_0x590c('0x16')](_0x4d1d35)[_0x590c('0x17')]();};}function respondWithResult(_0x51862a,_0x4eb87f){_0x4eb87f=_0x4eb87f||0xc8;return function(_0x56b3f6){if(_0x56b3f6){return _0x51862a[_0x590c('0x16')](_0x4eb87f)['json'](_0x56b3f6);}};}function respondWithFilteredResult(_0xd35fb,_0x3edd0a){return function(_0x26fb48){if(_0x26fb48){var _0x7fc561=typeof _0x3edd0a[_0x590c('0x18')]===_0x590c('0x19')&&typeof _0x3edd0a['limit']===_0x590c('0x19');var _0x4e1ff1=_0x26fb48[_0x590c('0x1a')];var _0x2ce962=_0x7fc561?0x0:_0x3edd0a[_0x590c('0x18')];var _0x4ad18a=_0x7fc561?_0x26fb48['count']:_0x3edd0a['offset']+_0x3edd0a['limit'];var _0x3930b9;if(_0x4ad18a>=_0x4e1ff1){_0x4ad18a=_0x4e1ff1;_0x3930b9=0xc8;}else{_0x3930b9=0xce;}_0xd35fb[_0x590c('0x16')](_0x3930b9);return _0xd35fb['set'](_0x590c('0x1b'),_0x2ce962+'-'+_0x4ad18a+'/'+_0x4e1ff1)[_0x590c('0x1c')](_0x26fb48);}return null;};}function patchUpdates(_0x7d91d){return function(_0xa60edd){try{jsonpatch[_0x590c('0x1d')](_0xa60edd,_0x7d91d,!![]);}catch(_0x2e9dfa){return BPromise[_0x590c('0x1e')](_0x2e9dfa);}return _0xa60edd['save']();};}function saveUpdates(_0x577d6b,_0xa5e54b){return function(_0x323439){if(_0x323439){return _0x323439[_0x590c('0x1f')](_0x577d6b)[_0x590c('0x20')](function(_0x6ac0f5){return _0x6ac0f5;});}return null;};}function removeEntity(_0x4629f1,_0x1a874d){return function(_0x4c9804){if(_0x4c9804){return _0x4c9804['destroy']()[_0x590c('0x20')](function(){var _0x416752=_0x4c9804['get']({'plain':!![]});var _0x37aca5='Dispositions';return db[_0x590c('0x21')][_0x590c('0x22')]({'where':{'type':_0x37aca5,'resourceId':_0x416752['id']}})[_0x590c('0x20')](function(){return _0x4c9804;});})[_0x590c('0x20')](function(){_0x4629f1['status'](0xcc)[_0x590c('0x17')]();});}};}function handleEntityNotFound(_0x253760,_0x2dad5a){return function(_0x3fce55){if(!_0x3fce55){_0x253760[_0x590c('0x15')](0x194);}return _0x3fce55;};}function handleError(_0x3bbe65,_0xd23eac){_0xd23eac=_0xd23eac||0x1f4;return function(_0x3acf45){logger['error'](_0x3acf45[_0x590c('0x23')]);if(_0x3acf45['name']){delete _0x3acf45[_0x590c('0x24')];}_0x3bbe65['status'](_0xd23eac)[_0x590c('0x25')](_0x3acf45);};}exports[_0x590c('0x26')]=function(_0x32e2f4,_0x28e561){var _0x4e1c04={},_0x12de4f={},_0x1a87f0={'count':0x0,'rows':[]};var _0x2e3208=_[_0x590c('0x27')](db[_0x590c('0x28')][_0x590c('0x29')],function(_0x3d1c40){return{'name':_0x3d1c40['fieldName'],'type':_0x3d1c40[_0x590c('0x2a')][_0x590c('0x2b')]};});_0x12de4f[_0x590c('0x2c')]=_[_0x590c('0x27')](_0x2e3208,_0x590c('0x24'));_0x12de4f[_0x590c('0x2d')]=_['keys'](_0x32e2f4[_0x590c('0x2d')]);_0x12de4f['filters']=_[_0x590c('0x2e')](_0x12de4f[_0x590c('0x2c')],_0x12de4f[_0x590c('0x2d')]);_0x4e1c04[_0x590c('0x2f')]=_[_0x590c('0x2e')](_0x12de4f['model'],qs[_0x590c('0x30')](_0x32e2f4[_0x590c('0x2d')][_0x590c('0x30')]));_0x4e1c04[_0x590c('0x2f')]=_0x4e1c04['attributes'][_0x590c('0x31')]?_0x4e1c04[_0x590c('0x2f')]:_0x12de4f[_0x590c('0x2c')];if(!_0x32e2f4[_0x590c('0x2d')][_0x590c('0x32')](_0x590c('0x33'))){_0x4e1c04['limit']=qs['limit'](_0x32e2f4['query'][_0x590c('0x34')]);_0x4e1c04[_0x590c('0x18')]=qs[_0x590c('0x18')](_0x32e2f4[_0x590c('0x2d')][_0x590c('0x18')]);}_0x4e1c04[_0x590c('0x35')]=qs['sort'](_0x32e2f4['query'][_0x590c('0x36')]);_0x4e1c04['where']=qs[_0x590c('0x37')](_['pick'](_0x32e2f4[_0x590c('0x2d')],_0x12de4f[_0x590c('0x37')]),_0x2e3208);if(_0x32e2f4[_0x590c('0x2d')]['filter']){_0x4e1c04[_0x590c('0x38')]=_['merge'](_0x4e1c04[_0x590c('0x38')],{'$or':_[_0x590c('0x27')](_0x2e3208,function(_0x1e6265){if(_0x1e6265[_0x590c('0x2a')]!==_0x590c('0x39')){var _0x5dfdbf={};_0x5dfdbf[_0x1e6265[_0x590c('0x24')]]={'$like':'%'+_0x32e2f4[_0x590c('0x2d')]['filter']+'%'};return _0x5dfdbf;}})});}_0x4e1c04=_['merge']({},_0x4e1c04,_0x32e2f4['options']);var _0x18f545={'where':_0x4e1c04[_0x590c('0x38')]};return db[_0x590c('0x28')][_0x590c('0x1a')](_0x18f545)['then'](function(_0x4a14fb){_0x1a87f0['count']=_0x4a14fb;if(_0x32e2f4[_0x590c('0x2d')]['includeAll']){_0x4e1c04[_0x590c('0x3a')]=[{'all':!![]}];}return db['Disposition']['findAll'](_0x4e1c04);})[_0x590c('0x20')](function(_0x3d21ee){_0x1a87f0[_0x590c('0x3b')]=_0x3d21ee;return _0x1a87f0;})['then'](respondWithFilteredResult(_0x28e561,_0x4e1c04))[_0x590c('0x3c')](handleError(_0x28e561,null));};exports[_0x590c('0x3d')]=function(_0x5b5f2a,_0x50956b){var _0x171c21={'raw':!![],'where':{'id':_0x5b5f2a[_0x590c('0x3e')]['id']}},_0x1dc62b={};_0x1dc62b[_0x590c('0x2c')]=_['keys'](db[_0x590c('0x28')][_0x590c('0x29')]);_0x1dc62b[_0x590c('0x2d')]=_[_0x590c('0x3f')](_0x5b5f2a[_0x590c('0x2d')]);_0x1dc62b[_0x590c('0x37')]=_[_0x590c('0x2e')](_0x1dc62b[_0x590c('0x2c')],_0x1dc62b[_0x590c('0x2d')]);_0x171c21[_0x590c('0x2f')]=_[_0x590c('0x2e')](_0x1dc62b['model'],qs[_0x590c('0x30')](_0x5b5f2a[_0x590c('0x2d')]['fields']));_0x171c21[_0x590c('0x2f')]=_0x171c21['attributes'][_0x590c('0x31')]?_0x171c21['attributes']:_0x1dc62b[_0x590c('0x2c')];if(_0x5b5f2a[_0x590c('0x2d')]['includeAll']){_0x171c21[_0x590c('0x3a')]=[{'all':!![]}];}_0x171c21=_[_0x590c('0x40')]({},_0x171c21,_0x5b5f2a['options']);return db[_0x590c('0x28')]['find'](_0x171c21)[_0x590c('0x20')](handleEntityNotFound(_0x50956b,null))[_0x590c('0x20')](respondWithResult(_0x50956b,null))[_0x590c('0x3c')](handleError(_0x50956b,null));};exports[_0x590c('0x41')]=function(_0x4ff920,_0x5f0916){return db['Disposition'][_0x590c('0x41')](_0x4ff920[_0x590c('0x42')],{})[_0x590c('0x20')](function(_0x56f426){var _0x176da0=_0x4ff920['user'][_0x590c('0x43')]({'plain':!![]});if(!_0x176da0)throw new Error(_0x590c('0x44'));if(_0x176da0['role']==='user'){var _0x5d2e65=_0x56f426['get']({'plain':!![]});var _0x3ac480=_0x590c('0x45');return db['UserProfileSection']['find']({'where':{'name':_0x3ac480,'userProfileId':_0x176da0['userProfileId']},'raw':!![]})[_0x590c('0x20')](function(_0x1f5d69){if(_0x1f5d69&&_0x1f5d69['autoAssociation']===0x0){return db[_0x590c('0x21')][_0x590c('0x41')]({'name':_0x5d2e65[_0x590c('0x24')],'resourceId':_0x5d2e65['id'],'type':_0x1f5d69[_0x590c('0x24')],'sectionId':_0x1f5d69['id']},{})[_0x590c('0x20')](function(){return _0x56f426;});}else{return _0x56f426;}})['catch'](function(_0x21031f){logger[_0x590c('0x46')](_0x590c('0x47'),_0x21031f);throw _0x21031f;});}return _0x56f426;})[_0x590c('0x20')](respondWithResult(_0x5f0916,0xc9))[_0x590c('0x3c')](handleError(_0x5f0916,null));};exports['update']=function(_0x1c22b5,_0x56adf2){if(_0x1c22b5['body']['id']){delete _0x1c22b5[_0x590c('0x42')]['id'];}return db[_0x590c('0x28')][_0x590c('0x48')]({'where':{'id':_0x1c22b5[_0x590c('0x3e')]['id']}})[_0x590c('0x20')](handleEntityNotFound(_0x56adf2,null))[_0x590c('0x20')](saveUpdates(_0x1c22b5[_0x590c('0x42')],null))[_0x590c('0x20')](respondWithResult(_0x56adf2,null))[_0x590c('0x3c')](handleError(_0x56adf2,null));};exports[_0x590c('0x22')]=function(_0x1849f0,_0x32ee22){return db[_0x590c('0x28')]['find']({'where':{'id':_0x1849f0['params']['id']}})['then'](handleEntityNotFound(_0x32ee22,null))[_0x590c('0x20')](removeEntity(_0x32ee22,null))[_0x590c('0x3c')](handleError(_0x32ee22,null));};