a04ec191339c95e0e25ad8d958f10324e4a6b620
[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 _0x9664=['get','UserProfileResource','error','index','Disposition','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','map','VIRTUAL','name','filter','merge','options','includeAll','include','findAll','rows','catch','params','find','create','body','role','user','Dispositions','UserProfileSection','userProfileId','autoAssociation','destroy','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','limit','offset','count','set','json','apply','reject','update','then'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0x9664,0x126));var _0x4966=function(_0x241c30,_0x2b177c){_0x241c30=_0x241c30-0x0;var _0x2eb280=_0x9664[_0x241c30];return _0x2eb280;};'use strict';var emlformat=require(_0x4966('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x4966('0x1'));var rp=require(_0x4966('0x2'));var moment=require(_0x4966('0x3'));var BPromise=require(_0x4966('0x4'));var Mustache=require(_0x4966('0x5'));var util=require(_0x4966('0x6'));var path=require('path');var sox=require(_0x4966('0x7'));var csv=require('to-csv');var ejs=require(_0x4966('0x8'));var fs=require('fs');var fs_extra=require(_0x4966('0x9'));var _=require(_0x4966('0xa'));var squel=require(_0x4966('0xb'));var crypto=require(_0x4966('0xc'));var jsforce=require(_0x4966('0xd'));var deskjs=require(_0x4966('0xe'));var toCsv=require(_0x4966('0xf'));var querystring=require(_0x4966('0x10'));var Papa=require(_0x4966('0x11'));var Redis=require('ioredis');var authService=require(_0x4966('0x12'));var qs=require(_0x4966('0x13'));var as=require(_0x4966('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4966('0x15'))('api');var utils=require(_0x4966('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x4966('0x17'));var db=require(_0x4966('0x18'))['db'];function respondWithStatusCode(_0x5ef913,_0x13f670){_0x13f670=_0x13f670||0xcc;return function(_0x549019){if(_0x549019){return _0x5ef913[_0x4966('0x19')](_0x13f670);}return _0x5ef913[_0x4966('0x1a')](_0x13f670)[_0x4966('0x1b')]();};}function respondWithResult(_0x37d80e,_0x2686b4){_0x2686b4=_0x2686b4||0xc8;return function(_0x498a65){if(_0x498a65){return _0x37d80e[_0x4966('0x1a')](_0x2686b4)['json'](_0x498a65);}};}function respondWithFilteredResult(_0x5b8e38,_0x4a518a){return function(_0x574b16){if(_0x574b16){var _0x153ce3=typeof _0x4a518a['offset']===_0x4966('0x1c')&&typeof _0x4a518a[_0x4966('0x1d')]===_0x4966('0x1c');var _0x46131a=_0x574b16['count'];var _0x59ac31=_0x153ce3?0x0:_0x4a518a[_0x4966('0x1e')];var _0x3877c2=_0x153ce3?_0x574b16[_0x4966('0x1f')]:_0x4a518a['offset']+_0x4a518a['limit'];var _0x1ebfd4;if(_0x3877c2>=_0x46131a){_0x3877c2=_0x46131a;_0x1ebfd4=0xc8;}else{_0x1ebfd4=0xce;}_0x5b8e38[_0x4966('0x1a')](_0x1ebfd4);return _0x5b8e38[_0x4966('0x20')]('Content-Range',_0x59ac31+'-'+_0x3877c2+'/'+_0x46131a)[_0x4966('0x21')](_0x574b16);}return null;};}function patchUpdates(_0x56cb60){return function(_0x30273f){try{jsonpatch[_0x4966('0x22')](_0x30273f,_0x56cb60,!![]);}catch(_0xeb247f){return BPromise[_0x4966('0x23')](_0xeb247f);}return _0x30273f['save']();};}function saveUpdates(_0x4df971,_0x53ace1){return function(_0x3dfb71){if(_0x3dfb71){return _0x3dfb71[_0x4966('0x24')](_0x4df971)[_0x4966('0x25')](function(_0x4cfc81){return _0x4cfc81;});}return null;};}function removeEntity(_0x2e95b8,_0x19c2fd){return function(_0x7fa89){if(_0x7fa89){return _0x7fa89['destroy']()[_0x4966('0x25')](function(){var _0x972d17=_0x7fa89[_0x4966('0x26')]({'plain':!![]});var _0x441787='Dispositions';return db[_0x4966('0x27')]['destroy']({'where':{'type':_0x441787,'resourceId':_0x972d17['id']}})[_0x4966('0x25')](function(){return _0x7fa89;});})[_0x4966('0x25')](function(){_0x2e95b8[_0x4966('0x1a')](0xcc)[_0x4966('0x1b')]();});}};}function handleEntityNotFound(_0x101d58,_0x211ddf){return function(_0x2c3833){if(!_0x2c3833){_0x101d58[_0x4966('0x19')](0x194);}return _0x2c3833;};}function handleError(_0x5f4fe7,_0xd6c366){_0xd6c366=_0xd6c366||0x1f4;return function(_0x10232a){logger[_0x4966('0x28')](_0x10232a['stack']);if(_0x10232a['name']){delete _0x10232a['name'];}_0x5f4fe7[_0x4966('0x1a')](_0xd6c366)['send'](_0x10232a);};}exports[_0x4966('0x29')]=function(_0x1cde5e,_0x2b8393){var _0x48e145={},_0x172e80={},_0x539b11={'count':0x0,'rows':[]};var _0x55f715=_['map'](db[_0x4966('0x2a')][_0x4966('0x2b')],function(_0x56058a){return{'name':_0x56058a[_0x4966('0x2c')],'type':_0x56058a[_0x4966('0x2d')][_0x4966('0x2e')]};});_0x172e80[_0x4966('0x2f')]=_['map'](_0x55f715,'name');_0x172e80['query']=_[_0x4966('0x30')](_0x1cde5e[_0x4966('0x31')]);_0x172e80[_0x4966('0x32')]=_[_0x4966('0x33')](_0x172e80['model'],_0x172e80[_0x4966('0x31')]);_0x48e145[_0x4966('0x34')]=_[_0x4966('0x33')](_0x172e80[_0x4966('0x2f')],qs['fields'](_0x1cde5e[_0x4966('0x31')][_0x4966('0x35')]));_0x48e145[_0x4966('0x34')]=_0x48e145[_0x4966('0x34')][_0x4966('0x36')]?_0x48e145[_0x4966('0x34')]:_0x172e80[_0x4966('0x2f')];if(!_0x1cde5e[_0x4966('0x31')][_0x4966('0x37')](_0x4966('0x38'))){_0x48e145[_0x4966('0x1d')]=qs[_0x4966('0x1d')](_0x1cde5e[_0x4966('0x31')][_0x4966('0x1d')]);_0x48e145[_0x4966('0x1e')]=qs[_0x4966('0x1e')](_0x1cde5e['query'][_0x4966('0x1e')]);}_0x48e145[_0x4966('0x39')]=qs[_0x4966('0x3a')](_0x1cde5e[_0x4966('0x31')][_0x4966('0x3a')]);_0x48e145['where']=qs[_0x4966('0x32')](_[_0x4966('0x3b')](_0x1cde5e[_0x4966('0x31')],_0x172e80[_0x4966('0x32')]),_0x55f715);if(_0x1cde5e['query']['filter']){_0x48e145[_0x4966('0x3c')]=_['merge'](_0x48e145[_0x4966('0x3c')],{'$or':_[_0x4966('0x3d')](_0x55f715,function(_0x3e7f34){if(_0x3e7f34[_0x4966('0x2d')]!==_0x4966('0x3e')){var _0x1ef4b2={};_0x1ef4b2[_0x3e7f34[_0x4966('0x3f')]]={'$like':'%'+_0x1cde5e[_0x4966('0x31')][_0x4966('0x40')]+'%'};return _0x1ef4b2;}})});}_0x48e145=_[_0x4966('0x41')]({},_0x48e145,_0x1cde5e[_0x4966('0x42')]);var _0x44b36f={'where':_0x48e145[_0x4966('0x3c')]};return db[_0x4966('0x2a')][_0x4966('0x1f')](_0x44b36f)[_0x4966('0x25')](function(_0x4ea255){_0x539b11[_0x4966('0x1f')]=_0x4ea255;if(_0x1cde5e[_0x4966('0x31')][_0x4966('0x43')]){_0x48e145[_0x4966('0x44')]=[{'all':!![]}];}return db[_0x4966('0x2a')][_0x4966('0x45')](_0x48e145);})[_0x4966('0x25')](function(_0x310dfc){_0x539b11[_0x4966('0x46')]=_0x310dfc;return _0x539b11;})[_0x4966('0x25')](respondWithFilteredResult(_0x2b8393,_0x48e145))[_0x4966('0x47')](handleError(_0x2b8393,null));};exports['show']=function(_0x3c916a,_0x5a6110){var _0xbb9ab1={'raw':!![],'where':{'id':_0x3c916a[_0x4966('0x48')]['id']}},_0x235d78={};_0x235d78[_0x4966('0x2f')]=_[_0x4966('0x30')](db[_0x4966('0x2a')][_0x4966('0x2b')]);_0x235d78['query']=_['keys'](_0x3c916a[_0x4966('0x31')]);_0x235d78[_0x4966('0x32')]=_['intersection'](_0x235d78[_0x4966('0x2f')],_0x235d78[_0x4966('0x31')]);_0xbb9ab1[_0x4966('0x34')]=_[_0x4966('0x33')](_0x235d78['model'],qs[_0x4966('0x35')](_0x3c916a[_0x4966('0x31')]['fields']));_0xbb9ab1['attributes']=_0xbb9ab1[_0x4966('0x34')][_0x4966('0x36')]?_0xbb9ab1[_0x4966('0x34')]:_0x235d78['model'];if(_0x3c916a[_0x4966('0x31')][_0x4966('0x43')]){_0xbb9ab1[_0x4966('0x44')]=[{'all':!![]}];}_0xbb9ab1=_[_0x4966('0x41')]({},_0xbb9ab1,_0x3c916a[_0x4966('0x42')]);return db['Disposition'][_0x4966('0x49')](_0xbb9ab1)[_0x4966('0x25')](handleEntityNotFound(_0x5a6110,null))['then'](respondWithResult(_0x5a6110,null))[_0x4966('0x47')](handleError(_0x5a6110,null));};exports[_0x4966('0x4a')]=function(_0x206e5d,_0x506bb){return db[_0x4966('0x2a')][_0x4966('0x4a')](_0x206e5d[_0x4966('0x4b')],{})[_0x4966('0x25')](function(_0x306d97){var _0x923e28=_0x206e5d['user'][_0x4966('0x26')]({'plain':!![]});if(!_0x923e28)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x923e28[_0x4966('0x4c')]===_0x4966('0x4d')){var _0xd1127a=_0x306d97[_0x4966('0x26')]({'plain':!![]});var _0x31dc72=_0x4966('0x4e');return db[_0x4966('0x4f')][_0x4966('0x49')]({'where':{'name':_0x31dc72,'userProfileId':_0x923e28[_0x4966('0x50')]},'raw':!![]})[_0x4966('0x25')](function(_0x55e61a){if(_0x55e61a&&_0x55e61a[_0x4966('0x51')]===0x0){return db['UserProfileResource'][_0x4966('0x4a')]({'name':_0xd1127a[_0x4966('0x3f')],'resourceId':_0xd1127a['id'],'type':_0x55e61a[_0x4966('0x3f')],'sectionId':_0x55e61a['id']},{})[_0x4966('0x25')](function(){return _0x306d97;});}else{return _0x306d97;}})[_0x4966('0x47')](function(_0x353cb3){logger[_0x4966('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x353cb3);throw _0x353cb3;});}return _0x306d97;})[_0x4966('0x25')](respondWithResult(_0x506bb,0xc9))['catch'](handleError(_0x506bb,null));};exports['update']=function(_0x47cb51,_0x17b90c){if(_0x47cb51['body']['id']){delete _0x47cb51[_0x4966('0x4b')]['id'];}return db['Disposition'][_0x4966('0x49')]({'where':{'id':_0x47cb51['params']['id']}})[_0x4966('0x25')](handleEntityNotFound(_0x17b90c,null))[_0x4966('0x25')](saveUpdates(_0x47cb51[_0x4966('0x4b')],null))[_0x4966('0x25')](respondWithResult(_0x17b90c,null))[_0x4966('0x47')](handleError(_0x17b90c,null));};exports[_0x4966('0x52')]=function(_0xccb472,_0x442414){return db[_0x4966('0x2a')][_0x4966('0x49')]({'where':{'id':_0xccb472[_0x4966('0x48')]['id']}})[_0x4966('0x25')](handleEntityNotFound(_0x442414,null))[_0x4966('0x25')](removeEntity(_0x442414,null))['catch'](handleError(_0x442414,null));};