79d7760b484cb2febbcca2deffdf20069c1f9653
[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 _0x9d0c=['Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Dispositions','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','update','then','destroy','get','UserProfileResource','sendStatus','error','stack','name','send','index','map','fieldName','type','key','query','keys','filters','intersection','model','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','options','Disposition','rows','catch','show','params','rawAttributes','includeAll','include','find','create','body','user'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x9d0c,0xb9));var _0xc9d0=function(_0xdd827a,_0x482ad2){_0xdd827a=_0xdd827a-0x0;var _0x2f46f1=_0x9d0c[_0xdd827a];return _0x2f46f1;};'use strict';var emlformat=require(_0xc9d0('0x0'));var rimraf=require(_0xc9d0('0x1'));var zipdir=require(_0xc9d0('0x2'));var jsonpatch=require(_0xc9d0('0x3'));var rp=require('request-promise');var moment=require(_0xc9d0('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xc9d0('0x5'));var util=require(_0xc9d0('0x6'));var path=require(_0xc9d0('0x7'));var sox=require(_0xc9d0('0x8'));var csv=require(_0xc9d0('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc9d0('0xa'));var _=require(_0xc9d0('0xb'));var squel=require(_0xc9d0('0xc'));var crypto=require(_0xc9d0('0xd'));var jsforce=require(_0xc9d0('0xe'));var deskjs=require(_0xc9d0('0xf'));var toCsv=require(_0xc9d0('0x9'));var querystring=require(_0xc9d0('0x10'));var Papa=require(_0xc9d0('0x11'));var Redis=require(_0xc9d0('0x12'));var authService=require(_0xc9d0('0x13'));var qs=require(_0xc9d0('0x14'));var as=require(_0xc9d0('0x15'));var hardwareService=require(_0xc9d0('0x16'));var logger=require(_0xc9d0('0x17'))(_0xc9d0('0x18'));var utils=require(_0xc9d0('0x19'));var config=require(_0xc9d0('0x1a'));var licenseUtil=require(_0xc9d0('0x1b'));var db=require(_0xc9d0('0x1c'))['db'];function respondWithStatusCode(_0x3df90d,_0x9a8a55){_0x9a8a55=_0x9a8a55||0xcc;return function(_0x1c147a){if(_0x1c147a){return _0x3df90d['sendStatus'](_0x9a8a55);}return _0x3df90d['status'](_0x9a8a55)[_0xc9d0('0x1d')]();};}function respondWithResult(_0x1ff817,_0x1d01c6){_0x1d01c6=_0x1d01c6||0xc8;return function(_0xf11e57){if(_0xf11e57){return _0x1ff817[_0xc9d0('0x1e')](_0x1d01c6)[_0xc9d0('0x1f')](_0xf11e57);}};}function respondWithFilteredResult(_0x3df995,_0x2ea05e){return function(_0x18eb1e){if(_0x18eb1e){var _0x31f48f=typeof _0x2ea05e[_0xc9d0('0x20')]===_0xc9d0('0x21')&&typeof _0x2ea05e[_0xc9d0('0x22')]===_0xc9d0('0x21');var _0x539744=_0x18eb1e[_0xc9d0('0x23')];var _0x5c1d84=_0x31f48f?0x0:_0x2ea05e['offset'];var _0x20aa19=_0x31f48f?_0x18eb1e[_0xc9d0('0x23')]:_0x2ea05e['offset']+_0x2ea05e[_0xc9d0('0x22')];var _0x247fb2;if(_0x20aa19>=_0x539744){_0x20aa19=_0x539744;_0x247fb2=0xc8;}else{_0x247fb2=0xce;}_0x3df995[_0xc9d0('0x1e')](_0x247fb2);return _0x3df995[_0xc9d0('0x24')](_0xc9d0('0x25'),_0x5c1d84+'-'+_0x20aa19+'/'+_0x539744)[_0xc9d0('0x1f')](_0x18eb1e);}return null;};}function patchUpdates(_0x526b62){return function(_0x380802){try{jsonpatch[_0xc9d0('0x26')](_0x380802,_0x526b62,!![]);}catch(_0x4fd61a){return BPromise['reject'](_0x4fd61a);}return _0x380802['save']();};}function saveUpdates(_0x5b489a,_0x48caa0){return function(_0x4112f3){if(_0x4112f3){return _0x4112f3[_0xc9d0('0x27')](_0x5b489a)[_0xc9d0('0x28')](function(_0x40bfdf){return _0x40bfdf;});}return null;};}function removeEntity(_0x4d0cd8,_0x73159f){return function(_0x5bb2fc){if(_0x5bb2fc){return _0x5bb2fc[_0xc9d0('0x29')]()[_0xc9d0('0x28')](function(){var _0x4e143e=_0x5bb2fc[_0xc9d0('0x2a')]({'plain':!![]});var _0xda2fd5='Dispositions';return db[_0xc9d0('0x2b')][_0xc9d0('0x29')]({'where':{'type':_0xda2fd5,'resourceId':_0x4e143e['id']}})[_0xc9d0('0x28')](function(){return _0x5bb2fc;});})[_0xc9d0('0x28')](function(){_0x4d0cd8[_0xc9d0('0x1e')](0xcc)[_0xc9d0('0x1d')]();});}};}function handleEntityNotFound(_0x27b6cf,_0x4987c1){return function(_0x2c5fe8){if(!_0x2c5fe8){_0x27b6cf[_0xc9d0('0x2c')](0x194);}return _0x2c5fe8;};}function handleError(_0x1a15ea,_0x2b1d99){_0x2b1d99=_0x2b1d99||0x1f4;return function(_0x3fe4ad){logger[_0xc9d0('0x2d')](_0x3fe4ad[_0xc9d0('0x2e')]);if(_0x3fe4ad[_0xc9d0('0x2f')]){delete _0x3fe4ad[_0xc9d0('0x2f')];}_0x1a15ea[_0xc9d0('0x1e')](_0x2b1d99)[_0xc9d0('0x30')](_0x3fe4ad);};}exports[_0xc9d0('0x31')]=function(_0x399adf,_0x4bcc09){var _0xcdac5d={},_0x10ac91={},_0x7859bc={'count':0x0,'rows':[]};var _0x5a6819=_[_0xc9d0('0x32')](db['Disposition']['rawAttributes'],function(_0x4d57fb){return{'name':_0x4d57fb[_0xc9d0('0x33')],'type':_0x4d57fb[_0xc9d0('0x34')][_0xc9d0('0x35')]};});_0x10ac91['model']=_[_0xc9d0('0x32')](_0x5a6819,_0xc9d0('0x2f'));_0x10ac91[_0xc9d0('0x36')]=_[_0xc9d0('0x37')](_0x399adf[_0xc9d0('0x36')]);_0x10ac91[_0xc9d0('0x38')]=_[_0xc9d0('0x39')](_0x10ac91[_0xc9d0('0x3a')],_0x10ac91[_0xc9d0('0x36')]);_0xcdac5d['attributes']=_['intersection'](_0x10ac91['model'],qs['fields'](_0x399adf[_0xc9d0('0x36')][_0xc9d0('0x3b')]));_0xcdac5d[_0xc9d0('0x3c')]=_0xcdac5d['attributes'][_0xc9d0('0x3d')]?_0xcdac5d['attributes']:_0x10ac91[_0xc9d0('0x3a')];if(!_0x399adf['query']['hasOwnProperty'](_0xc9d0('0x3e'))){_0xcdac5d[_0xc9d0('0x22')]=qs['limit'](_0x399adf['query'][_0xc9d0('0x22')]);_0xcdac5d[_0xc9d0('0x20')]=qs['offset'](_0x399adf[_0xc9d0('0x36')]['offset']);}_0xcdac5d[_0xc9d0('0x3f')]=qs[_0xc9d0('0x40')](_0x399adf['query']['sort']);_0xcdac5d[_0xc9d0('0x41')]=qs[_0xc9d0('0x38')](_[_0xc9d0('0x42')](_0x399adf[_0xc9d0('0x36')],_0x10ac91[_0xc9d0('0x38')]),_0x5a6819);if(_0x399adf[_0xc9d0('0x36')][_0xc9d0('0x43')]){_0xcdac5d[_0xc9d0('0x41')]=_['merge'](_0xcdac5d['where'],{'$or':_['map'](_0x5a6819,function(_0x22598f){if(_0x22598f['type']!=='VIRTUAL'){var _0x198f39={};_0x198f39[_0x22598f[_0xc9d0('0x2f')]]={'$like':'%'+_0x399adf['query'][_0xc9d0('0x43')]+'%'};return _0x198f39;}})});}_0xcdac5d=_[_0xc9d0('0x44')]({},_0xcdac5d,_0x399adf[_0xc9d0('0x45')]);var _0xf7ebd6={'where':_0xcdac5d[_0xc9d0('0x41')]};return db[_0xc9d0('0x46')][_0xc9d0('0x23')](_0xf7ebd6)[_0xc9d0('0x28')](function(_0x24dfe7){_0x7859bc[_0xc9d0('0x23')]=_0x24dfe7;if(_0x399adf[_0xc9d0('0x36')]['includeAll']){_0xcdac5d['include']=[{'all':!![]}];}return db[_0xc9d0('0x46')]['findAll'](_0xcdac5d);})['then'](function(_0x2cc699){_0x7859bc[_0xc9d0('0x47')]=_0x2cc699;return _0x7859bc;})['then'](respondWithFilteredResult(_0x4bcc09,_0xcdac5d))[_0xc9d0('0x48')](handleError(_0x4bcc09,null));};exports[_0xc9d0('0x49')]=function(_0x3aa617,_0x46e879){var _0x79daef={'raw':!![],'where':{'id':_0x3aa617[_0xc9d0('0x4a')]['id']}},_0x15a930={};_0x15a930['model']=_[_0xc9d0('0x37')](db[_0xc9d0('0x46')][_0xc9d0('0x4b')]);_0x15a930[_0xc9d0('0x36')]=_[_0xc9d0('0x37')](_0x3aa617[_0xc9d0('0x36')]);_0x15a930[_0xc9d0('0x38')]=_[_0xc9d0('0x39')](_0x15a930[_0xc9d0('0x3a')],_0x15a930[_0xc9d0('0x36')]);_0x79daef[_0xc9d0('0x3c')]=_[_0xc9d0('0x39')](_0x15a930[_0xc9d0('0x3a')],qs['fields'](_0x3aa617[_0xc9d0('0x36')]['fields']));_0x79daef['attributes']=_0x79daef[_0xc9d0('0x3c')][_0xc9d0('0x3d')]?_0x79daef[_0xc9d0('0x3c')]:_0x15a930[_0xc9d0('0x3a')];if(_0x3aa617[_0xc9d0('0x36')][_0xc9d0('0x4c')]){_0x79daef[_0xc9d0('0x4d')]=[{'all':!![]}];}_0x79daef=_['merge']({},_0x79daef,_0x3aa617[_0xc9d0('0x45')]);return db[_0xc9d0('0x46')][_0xc9d0('0x4e')](_0x79daef)[_0xc9d0('0x28')](handleEntityNotFound(_0x46e879,null))[_0xc9d0('0x28')](respondWithResult(_0x46e879,null))[_0xc9d0('0x48')](handleError(_0x46e879,null));};exports[_0xc9d0('0x4f')]=function(_0x27b5e5,_0x3fa59f){return db['Disposition'][_0xc9d0('0x4f')](_0x27b5e5[_0xc9d0('0x50')],{})[_0xc9d0('0x28')](function(_0x5396ff){var _0x103e87=_0x27b5e5[_0xc9d0('0x51')]['get']({'plain':!![]});if(!_0x103e87)throw new Error(_0xc9d0('0x52'));if(_0x103e87[_0xc9d0('0x53')]===_0xc9d0('0x51')){var _0x2f532f=_0x5396ff[_0xc9d0('0x2a')]({'plain':!![]});var _0x23da9b=_0xc9d0('0x54');return db[_0xc9d0('0x55')]['find']({'where':{'name':_0x23da9b,'userProfileId':_0x103e87[_0xc9d0('0x56')]},'raw':!![]})[_0xc9d0('0x28')](function(_0x2a2334){if(_0x2a2334&&_0x2a2334[_0xc9d0('0x57')]===0x0){return db[_0xc9d0('0x2b')][_0xc9d0('0x4f')]({'name':_0x2f532f[_0xc9d0('0x2f')],'resourceId':_0x2f532f['id'],'type':_0x2a2334[_0xc9d0('0x2f')],'sectionId':_0x2a2334['id']},{})[_0xc9d0('0x28')](function(){return _0x5396ff;});}else{return _0x5396ff;}})['catch'](function(_0xff76f){logger[_0xc9d0('0x2d')](_0xc9d0('0x58'),_0xff76f);throw _0xff76f;});}return _0x5396ff;})[_0xc9d0('0x28')](respondWithResult(_0x3fa59f,0xc9))[_0xc9d0('0x48')](handleError(_0x3fa59f,null));};exports[_0xc9d0('0x27')]=function(_0x4959e0,_0x58e550){if(_0x4959e0[_0xc9d0('0x50')]['id']){delete _0x4959e0['body']['id'];}return db[_0xc9d0('0x46')][_0xc9d0('0x4e')]({'where':{'id':_0x4959e0[_0xc9d0('0x4a')]['id']}})[_0xc9d0('0x28')](handleEntityNotFound(_0x58e550,null))[_0xc9d0('0x28')](saveUpdates(_0x4959e0[_0xc9d0('0x50')],null))[_0xc9d0('0x28')](respondWithResult(_0x58e550,null))['catch'](handleError(_0x58e550,null));};exports[_0xc9d0('0x29')]=function(_0x56e0d8,_0x589864){return db[_0xc9d0('0x46')][_0xc9d0('0x4e')]({'where':{'id':_0x56e0d8['params']['id']}})[_0xc9d0('0x28')](handleEntityNotFound(_0x589864,null))['then'](removeEntity(_0x589864,null))[_0xc9d0('0x48')](handleError(_0x589864,null));};