Built motion from commit b5413ace.|2.6.9
[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 _0x862b=['user','role','get','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','set','apply','reject','save','update','then','Dispositions','UserProfileResource','end','stack','name','index','Disposition','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','map','options','findAll','catch','includeAll','find','create'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x862b,0x14a));var _0xb862=function(_0x2e1592,_0x284c20){_0x2e1592=_0x2e1592-0x0;var _0x1f1f04=_0x862b[_0x2e1592];return _0x1f1f04;};'use strict';var emlformat=require(_0xb862('0x0'));var rimraf=require(_0xb862('0x1'));var zipdir=require(_0xb862('0x2'));var jsonpatch=require(_0xb862('0x3'));var rp=require(_0xb862('0x4'));var moment=require(_0xb862('0x5'));var BPromise=require(_0xb862('0x6'));var Mustache=require(_0xb862('0x7'));var util=require(_0xb862('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0xb862('0x9'));var ejs=require(_0xb862('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xb862('0xb'));var crypto=require(_0xb862('0xc'));var jsforce=require(_0xb862('0xd'));var deskjs=require(_0xb862('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xb862('0xf'));var Redis=require(_0xb862('0x10'));var authService=require(_0xb862('0x11'));var qs=require(_0xb862('0x12'));var as=require(_0xb862('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xb862('0x14'));var utils=require('../../config/utils');var config=require(_0xb862('0x15'));var licenseUtil=require(_0xb862('0x16'));var db=require(_0xb862('0x17'))['db'];function respondWithStatusCode(_0x21b9f3,_0x50e7f6){_0x50e7f6=_0x50e7f6||0xcc;return function(_0x165be1){if(_0x165be1){return _0x21b9f3[_0xb862('0x18')](_0x50e7f6);}return _0x21b9f3[_0xb862('0x19')](_0x50e7f6)['end']();};}function respondWithResult(_0x5e8525,_0x48cfe2){_0x48cfe2=_0x48cfe2||0xc8;return function(_0x1e7c90){if(_0x1e7c90){return _0x5e8525[_0xb862('0x19')](_0x48cfe2)[_0xb862('0x1a')](_0x1e7c90);}};}function respondWithFilteredResult(_0x4b8446,_0x421591){return function(_0x36681b){if(_0x36681b){var _0x14e475=typeof _0x421591['offset']===_0xb862('0x1b')&&typeof _0x421591[_0xb862('0x1c')]==='undefined';var _0x11be52=_0x36681b[_0xb862('0x1d')];var _0x5dafe4=_0x14e475?0x0:_0x421591[_0xb862('0x1e')];var _0x2085e7=_0x14e475?_0x36681b[_0xb862('0x1d')]:_0x421591[_0xb862('0x1e')]+_0x421591[_0xb862('0x1c')];var _0x116877;if(_0x2085e7>=_0x11be52){_0x2085e7=_0x11be52;_0x116877=0xc8;}else{_0x116877=0xce;}_0x4b8446[_0xb862('0x19')](_0x116877);return _0x4b8446[_0xb862('0x1f')]('Content-Range',_0x5dafe4+'-'+_0x2085e7+'/'+_0x11be52)[_0xb862('0x1a')](_0x36681b);}return null;};}function patchUpdates(_0x1e799a){return function(_0x386f14){try{jsonpatch[_0xb862('0x20')](_0x386f14,_0x1e799a,!![]);}catch(_0x3c67ea){return BPromise[_0xb862('0x21')](_0x3c67ea);}return _0x386f14[_0xb862('0x22')]();};}function saveUpdates(_0x4b310e,_0x422670){return function(_0x311ccd){if(_0x311ccd){return _0x311ccd[_0xb862('0x23')](_0x4b310e)[_0xb862('0x24')](function(_0x3f4a09){return _0x3f4a09;});}return null;};}function removeEntity(_0x86845e,_0x539928){return function(_0x28c778){if(_0x28c778){return _0x28c778['destroy']()[_0xb862('0x24')](function(){var _0x25d481=_0x28c778['get']({'plain':!![]});var _0x4c00ae=_0xb862('0x25');return db[_0xb862('0x26')]['destroy']({'where':{'type':_0x4c00ae,'resourceId':_0x25d481['id']}})[_0xb862('0x24')](function(){return _0x28c778;});})[_0xb862('0x24')](function(){_0x86845e[_0xb862('0x19')](0xcc)[_0xb862('0x27')]();});}};}function handleEntityNotFound(_0x757c09,_0x13aa88){return function(_0xbb04c7){if(!_0xbb04c7){_0x757c09[_0xb862('0x18')](0x194);}return _0xbb04c7;};}function handleError(_0x550a26,_0x18fa47){_0x18fa47=_0x18fa47||0x1f4;return function(_0x4a42a5){logger['error'](_0x4a42a5[_0xb862('0x28')]);if(_0x4a42a5[_0xb862('0x29')]){delete _0x4a42a5[_0xb862('0x29')];}_0x550a26['status'](_0x18fa47)['send'](_0x4a42a5);};}exports[_0xb862('0x2a')]=function(_0x15f9a3,_0x142465){var _0x317dbb={},_0x314829={},_0x186d4b={'count':0x0,'rows':[]};var _0x525966=_['map'](db[_0xb862('0x2b')][_0xb862('0x2c')],function(_0x3a79f2){return{'name':_0x3a79f2['fieldName'],'type':_0x3a79f2[_0xb862('0x2d')][_0xb862('0x2e')]};});_0x314829[_0xb862('0x2f')]=_['map'](_0x525966,_0xb862('0x29'));_0x314829[_0xb862('0x30')]=_[_0xb862('0x31')](_0x15f9a3[_0xb862('0x30')]);_0x314829['filters']=_[_0xb862('0x32')](_0x314829[_0xb862('0x2f')],_0x314829[_0xb862('0x30')]);_0x317dbb[_0xb862('0x33')]=_[_0xb862('0x32')](_0x314829['model'],qs[_0xb862('0x34')](_0x15f9a3['query'][_0xb862('0x34')]));_0x317dbb[_0xb862('0x33')]=_0x317dbb[_0xb862('0x33')][_0xb862('0x35')]?_0x317dbb[_0xb862('0x33')]:_0x314829[_0xb862('0x2f')];if(!_0x15f9a3[_0xb862('0x30')][_0xb862('0x36')](_0xb862('0x37'))){_0x317dbb[_0xb862('0x1c')]=qs[_0xb862('0x1c')](_0x15f9a3['query'][_0xb862('0x1c')]);_0x317dbb[_0xb862('0x1e')]=qs[_0xb862('0x1e')](_0x15f9a3['query'][_0xb862('0x1e')]);}_0x317dbb[_0xb862('0x38')]=qs[_0xb862('0x39')](_0x15f9a3['query'][_0xb862('0x39')]);_0x317dbb[_0xb862('0x3a')]=qs[_0xb862('0x3b')](_[_0xb862('0x3c')](_0x15f9a3[_0xb862('0x30')],_0x314829[_0xb862('0x3b')]),_0x525966);if(_0x15f9a3[_0xb862('0x30')][_0xb862('0x3d')]){_0x317dbb['where']=_[_0xb862('0x3e')](_0x317dbb[_0xb862('0x3a')],{'$or':_[_0xb862('0x3f')](_0x525966,function(_0x49e9cc){if(_0x49e9cc[_0xb862('0x2d')]!=='VIRTUAL'){var _0x4f586d={};_0x4f586d[_0x49e9cc[_0xb862('0x29')]]={'$like':'%'+_0x15f9a3['query'][_0xb862('0x3d')]+'%'};return _0x4f586d;}})});}_0x317dbb=_[_0xb862('0x3e')]({},_0x317dbb,_0x15f9a3[_0xb862('0x40')]);var _0x8db823={'where':_0x317dbb[_0xb862('0x3a')]};return db['Disposition']['count'](_0x8db823)[_0xb862('0x24')](function(_0x265c5c){_0x186d4b[_0xb862('0x1d')]=_0x265c5c;if(_0x15f9a3[_0xb862('0x30')]['includeAll']){_0x317dbb['include']=[{'all':!![]}];}return db[_0xb862('0x2b')][_0xb862('0x41')](_0x317dbb);})[_0xb862('0x24')](function(_0x2fcd89){_0x186d4b['rows']=_0x2fcd89;return _0x186d4b;})['then'](respondWithFilteredResult(_0x142465,_0x317dbb))[_0xb862('0x42')](handleError(_0x142465,null));};exports['show']=function(_0x58c984,_0x535bbe){var _0x1504a1={'raw':!![],'where':{'id':_0x58c984['params']['id']}},_0x44343f={};_0x44343f[_0xb862('0x2f')]=_[_0xb862('0x31')](db[_0xb862('0x2b')][_0xb862('0x2c')]);_0x44343f['query']=_[_0xb862('0x31')](_0x58c984[_0xb862('0x30')]);_0x44343f[_0xb862('0x3b')]=_[_0xb862('0x32')](_0x44343f[_0xb862('0x2f')],_0x44343f['query']);_0x1504a1[_0xb862('0x33')]=_[_0xb862('0x32')](_0x44343f['model'],qs[_0xb862('0x34')](_0x58c984[_0xb862('0x30')][_0xb862('0x34')]));_0x1504a1[_0xb862('0x33')]=_0x1504a1[_0xb862('0x33')][_0xb862('0x35')]?_0x1504a1[_0xb862('0x33')]:_0x44343f[_0xb862('0x2f')];if(_0x58c984['query'][_0xb862('0x43')]){_0x1504a1['include']=[{'all':!![]}];}_0x1504a1=_[_0xb862('0x3e')]({},_0x1504a1,_0x58c984[_0xb862('0x40')]);return db[_0xb862('0x2b')][_0xb862('0x44')](_0x1504a1)[_0xb862('0x24')](handleEntityNotFound(_0x535bbe,null))[_0xb862('0x24')](respondWithResult(_0x535bbe,null))[_0xb862('0x42')](handleError(_0x535bbe,null));};exports[_0xb862('0x45')]=function(_0x5fe51d,_0x4cb5e6){return db['Disposition'][_0xb862('0x45')](_0x5fe51d['body'],{})[_0xb862('0x24')](function(_0x47d5be){var _0x36d033=_0x5fe51d[_0xb862('0x46')]['get']({'plain':!![]});if(!_0x36d033)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x36d033[_0xb862('0x47')]==='user'){var _0x158a99=_0x47d5be[_0xb862('0x48')]({'plain':!![]});var _0x5e8d79='Dispositions';return db[_0xb862('0x49')]['find']({'where':{'name':_0x5e8d79,'userProfileId':_0x36d033[_0xb862('0x4a')]},'raw':!![]})['then'](function(_0x59aa16){if(_0x59aa16&&_0x59aa16[_0xb862('0x4b')]===0x0){return db['UserProfileResource']['create']({'name':_0x158a99[_0xb862('0x29')],'resourceId':_0x158a99['id'],'type':_0x59aa16[_0xb862('0x29')],'sectionId':_0x59aa16['id']},{})[_0xb862('0x24')](function(){return _0x47d5be;});}else{return _0x47d5be;}})[_0xb862('0x42')](function(_0x523390){logger['error'](_0xb862('0x4c'),_0x523390);throw _0x523390;});}return _0x47d5be;})[_0xb862('0x24')](respondWithResult(_0x4cb5e6,0xc9))[_0xb862('0x42')](handleError(_0x4cb5e6,null));};exports[_0xb862('0x23')]=function(_0x51fcfa,_0x12dcf0){if(_0x51fcfa['body']['id']){delete _0x51fcfa[_0xb862('0x4d')]['id'];}return db[_0xb862('0x2b')][_0xb862('0x44')]({'where':{'id':_0x51fcfa[_0xb862('0x4e')]['id']}})[_0xb862('0x24')](handleEntityNotFound(_0x12dcf0,null))[_0xb862('0x24')](saveUpdates(_0x51fcfa[_0xb862('0x4d')],null))[_0xb862('0x24')](respondWithResult(_0x12dcf0,null))[_0xb862('0x42')](handleError(_0x12dcf0,null));};exports[_0xb862('0x4f')]=function(_0x4ad6d4,_0x503abc){return db['Disposition']['find']({'where':{'id':_0x4ad6d4[_0xb862('0x4e')]['id']}})['then'](handleEntityNotFound(_0x503abc,null))['then'](removeEntity(_0x503abc,null))['catch'](handleError(_0x503abc,null));};