b14e724e2246eee95c5fb9f4857cc2e3a40d148b
[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 _0xe574=['userProfileId','autoAssociation','UserProfileResource','update','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','limit','offset','count','set','Content-Range','apply','reject','save','destroy','then','get','Dispositions','error','stack','name','index','map','Disposition','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','VIRTUAL','filter','merge','includeAll','findAll','rows','catch','params','include','options','find','create','body','user','role','UserProfileSection'];(function(_0x33b912,_0xd206d2){var _0x29cd8d=function(_0x4f5e40){while(--_0x4f5e40){_0x33b912['push'](_0x33b912['shift']());}};_0x29cd8d(++_0xd206d2);}(_0xe574,0x100));var _0x4e57=function(_0x178e48,_0x3c9509){_0x178e48=_0x178e48-0x0;var _0x440d7e=_0xe574[_0x178e48];return _0x440d7e;};'use strict';var emlformat=require(_0x4e57('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4e57('0x1'));var jsonpatch=require(_0x4e57('0x2'));var rp=require(_0x4e57('0x3'));var moment=require(_0x4e57('0x4'));var BPromise=require(_0x4e57('0x5'));var Mustache=require(_0x4e57('0x6'));var util=require(_0x4e57('0x7'));var path=require(_0x4e57('0x8'));var sox=require(_0x4e57('0x9'));var csv=require(_0x4e57('0xa'));var ejs=require(_0x4e57('0xb'));var fs=require('fs');var fs_extra=require(_0x4e57('0xc'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x4e57('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x4e57('0xa'));var querystring=require(_0x4e57('0xe'));var Papa=require(_0x4e57('0xf'));var Redis=require(_0x4e57('0x10'));var authService=require(_0x4e57('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x4e57('0x12'));var hardwareService=require(_0x4e57('0x13'));var logger=require(_0x4e57('0x14'))(_0x4e57('0x15'));var utils=require(_0x4e57('0x16'));var config=require(_0x4e57('0x17'));var licenseUtil=require(_0x4e57('0x18'));var db=require(_0x4e57('0x19'))['db'];function respondWithStatusCode(_0xed8cbc,_0x40c8c8){_0x40c8c8=_0x40c8c8||0xcc;return function(_0x330868){if(_0x330868){return _0xed8cbc[_0x4e57('0x1a')](_0x40c8c8);}return _0xed8cbc[_0x4e57('0x1b')](_0x40c8c8)[_0x4e57('0x1c')]();};}function respondWithResult(_0x28f876,_0x2e9fa8){_0x2e9fa8=_0x2e9fa8||0xc8;return function(_0x4f088a){if(_0x4f088a){return _0x28f876[_0x4e57('0x1b')](_0x2e9fa8)['json'](_0x4f088a);}};}function respondWithFilteredResult(_0x254285,_0x4af0a6){return function(_0x3401c4){if(_0x3401c4){var _0x214957=typeof _0x4af0a6['offset']===_0x4e57('0x1d')&&typeof _0x4af0a6[_0x4e57('0x1e')]===_0x4e57('0x1d');var _0xb06d8=_0x3401c4['count'];var _0x2ed980=_0x214957?0x0:_0x4af0a6[_0x4e57('0x1f')];var _0x3c2978=_0x214957?_0x3401c4[_0x4e57('0x20')]:_0x4af0a6[_0x4e57('0x1f')]+_0x4af0a6['limit'];var _0x182286;if(_0x3c2978>=_0xb06d8){_0x3c2978=_0xb06d8;_0x182286=0xc8;}else{_0x182286=0xce;}_0x254285[_0x4e57('0x1b')](_0x182286);return _0x254285[_0x4e57('0x21')](_0x4e57('0x22'),_0x2ed980+'-'+_0x3c2978+'/'+_0xb06d8)['json'](_0x3401c4);}return null;};}function patchUpdates(_0x372295){return function(_0x59df7a){try{jsonpatch[_0x4e57('0x23')](_0x59df7a,_0x372295,!![]);}catch(_0x5b6127){return BPromise[_0x4e57('0x24')](_0x5b6127);}return _0x59df7a[_0x4e57('0x25')]();};}function saveUpdates(_0x427c6b,_0x43c9a7){return function(_0x45f9cd){if(_0x45f9cd){return _0x45f9cd['update'](_0x427c6b)['then'](function(_0x17e309){return _0x17e309;});}return null;};}function removeEntity(_0x58d6ea,_0x315f7c){return function(_0x4cfa0e){if(_0x4cfa0e){return _0x4cfa0e[_0x4e57('0x26')]()[_0x4e57('0x27')](function(){var _0x38bcaa=_0x4cfa0e[_0x4e57('0x28')]({'plain':!![]});var _0x29df93=_0x4e57('0x29');return db['UserProfileResource'][_0x4e57('0x26')]({'where':{'type':_0x29df93,'resourceId':_0x38bcaa['id']}})[_0x4e57('0x27')](function(){return _0x4cfa0e;});})['then'](function(){_0x58d6ea[_0x4e57('0x1b')](0xcc)[_0x4e57('0x1c')]();});}};}function handleEntityNotFound(_0x24b9b5,_0x2ccc1f){return function(_0x45aaf1){if(!_0x45aaf1){_0x24b9b5[_0x4e57('0x1a')](0x194);}return _0x45aaf1;};}function handleError(_0x1b0ce5,_0x548a92){_0x548a92=_0x548a92||0x1f4;return function(_0x1a26f6){logger[_0x4e57('0x2a')](_0x1a26f6[_0x4e57('0x2b')]);if(_0x1a26f6[_0x4e57('0x2c')]){delete _0x1a26f6[_0x4e57('0x2c')];}_0x1b0ce5['status'](_0x548a92)['send'](_0x1a26f6);};}exports[_0x4e57('0x2d')]=function(_0x59dd4e,_0x3ce391){var _0xb7c60={},_0x4bafa8={},_0xdbd90f={'count':0x0,'rows':[]};var _0x5ba48c=_[_0x4e57('0x2e')](db[_0x4e57('0x2f')][_0x4e57('0x30')],function(_0x5e2453){return{'name':_0x5e2453[_0x4e57('0x31')],'type':_0x5e2453[_0x4e57('0x32')]['key']};});_0x4bafa8[_0x4e57('0x33')]=_['map'](_0x5ba48c,'name');_0x4bafa8[_0x4e57('0x34')]=_[_0x4e57('0x35')](_0x59dd4e[_0x4e57('0x34')]);_0x4bafa8['filters']=_[_0x4e57('0x36')](_0x4bafa8['model'],_0x4bafa8[_0x4e57('0x34')]);_0xb7c60[_0x4e57('0x37')]=_[_0x4e57('0x36')](_0x4bafa8['model'],qs[_0x4e57('0x38')](_0x59dd4e[_0x4e57('0x34')][_0x4e57('0x38')]));_0xb7c60[_0x4e57('0x37')]=_0xb7c60[_0x4e57('0x37')][_0x4e57('0x39')]?_0xb7c60[_0x4e57('0x37')]:_0x4bafa8[_0x4e57('0x33')];if(!_0x59dd4e[_0x4e57('0x34')][_0x4e57('0x3a')](_0x4e57('0x3b'))){_0xb7c60['limit']=qs[_0x4e57('0x1e')](_0x59dd4e['query'][_0x4e57('0x1e')]);_0xb7c60[_0x4e57('0x1f')]=qs[_0x4e57('0x1f')](_0x59dd4e[_0x4e57('0x34')]['offset']);}_0xb7c60['order']=qs[_0x4e57('0x3c')](_0x59dd4e[_0x4e57('0x34')][_0x4e57('0x3c')]);_0xb7c60[_0x4e57('0x3d')]=qs[_0x4e57('0x3e')](_[_0x4e57('0x3f')](_0x59dd4e[_0x4e57('0x34')],_0x4bafa8[_0x4e57('0x3e')]),_0x5ba48c);if(_0x59dd4e[_0x4e57('0x34')]['filter']){_0xb7c60[_0x4e57('0x3d')]=_['merge'](_0xb7c60[_0x4e57('0x3d')],{'$or':_[_0x4e57('0x2e')](_0x5ba48c,function(_0x526ea6){if(_0x526ea6[_0x4e57('0x32')]!==_0x4e57('0x40')){var _0x7b4391={};_0x7b4391[_0x526ea6[_0x4e57('0x2c')]]={'$like':'%'+_0x59dd4e[_0x4e57('0x34')][_0x4e57('0x41')]+'%'};return _0x7b4391;}})});}_0xb7c60=_[_0x4e57('0x42')]({},_0xb7c60,_0x59dd4e['options']);var _0x9a449d={'where':_0xb7c60[_0x4e57('0x3d')]};return db['Disposition'][_0x4e57('0x20')](_0x9a449d)[_0x4e57('0x27')](function(_0x2ef995){_0xdbd90f[_0x4e57('0x20')]=_0x2ef995;if(_0x59dd4e[_0x4e57('0x34')][_0x4e57('0x43')]){_0xb7c60['include']=[{'all':!![]}];}return db[_0x4e57('0x2f')][_0x4e57('0x44')](_0xb7c60);})[_0x4e57('0x27')](function(_0x330da6){_0xdbd90f[_0x4e57('0x45')]=_0x330da6;return _0xdbd90f;})[_0x4e57('0x27')](respondWithFilteredResult(_0x3ce391,_0xb7c60))[_0x4e57('0x46')](handleError(_0x3ce391,null));};exports['show']=function(_0x4434ed,_0x3a86eb){var _0x97c403={'raw':!![],'where':{'id':_0x4434ed[_0x4e57('0x47')]['id']}},_0x1aefd2={};_0x1aefd2['model']=_[_0x4e57('0x35')](db[_0x4e57('0x2f')][_0x4e57('0x30')]);_0x1aefd2[_0x4e57('0x34')]=_[_0x4e57('0x35')](_0x4434ed[_0x4e57('0x34')]);_0x1aefd2[_0x4e57('0x3e')]=_[_0x4e57('0x36')](_0x1aefd2[_0x4e57('0x33')],_0x1aefd2[_0x4e57('0x34')]);_0x97c403['attributes']=_['intersection'](_0x1aefd2['model'],qs[_0x4e57('0x38')](_0x4434ed[_0x4e57('0x34')][_0x4e57('0x38')]));_0x97c403[_0x4e57('0x37')]=_0x97c403[_0x4e57('0x37')][_0x4e57('0x39')]?_0x97c403[_0x4e57('0x37')]:_0x1aefd2[_0x4e57('0x33')];if(_0x4434ed[_0x4e57('0x34')][_0x4e57('0x43')]){_0x97c403[_0x4e57('0x48')]=[{'all':!![]}];}_0x97c403=_[_0x4e57('0x42')]({},_0x97c403,_0x4434ed[_0x4e57('0x49')]);return db['Disposition'][_0x4e57('0x4a')](_0x97c403)[_0x4e57('0x27')](handleEntityNotFound(_0x3a86eb,null))[_0x4e57('0x27')](respondWithResult(_0x3a86eb,null))[_0x4e57('0x46')](handleError(_0x3a86eb,null));};exports[_0x4e57('0x4b')]=function(_0x41d476,_0x48869d){return db[_0x4e57('0x2f')][_0x4e57('0x4b')](_0x41d476[_0x4e57('0x4c')],{})[_0x4e57('0x27')](function(_0x3cdb3f){var _0x3bacfb=_0x41d476[_0x4e57('0x4d')][_0x4e57('0x28')]({'plain':!![]});if(!_0x3bacfb)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3bacfb[_0x4e57('0x4e')]==='user'){var _0x3deb47=_0x3cdb3f[_0x4e57('0x28')]({'plain':!![]});var _0x2e880f='Dispositions';return db[_0x4e57('0x4f')]['find']({'where':{'name':_0x2e880f,'userProfileId':_0x3bacfb[_0x4e57('0x50')]},'raw':!![]})[_0x4e57('0x27')](function(_0x243a7e){if(_0x243a7e&&_0x243a7e[_0x4e57('0x51')]===0x0){return db[_0x4e57('0x52')][_0x4e57('0x4b')]({'name':_0x3deb47[_0x4e57('0x2c')],'resourceId':_0x3deb47['id'],'type':_0x243a7e['name'],'sectionId':_0x243a7e['id']},{})['then'](function(){return _0x3cdb3f;});}else{return _0x3cdb3f;}})[_0x4e57('0x46')](function(_0x2e6a8f){logger[_0x4e57('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2e6a8f);throw _0x2e6a8f;});}return _0x3cdb3f;})[_0x4e57('0x27')](respondWithResult(_0x48869d,0xc9))[_0x4e57('0x46')](handleError(_0x48869d,null));};exports[_0x4e57('0x53')]=function(_0x3d4714,_0x5b6817){if(_0x3d4714[_0x4e57('0x4c')]['id']){delete _0x3d4714['body']['id'];}return db['Disposition'][_0x4e57('0x4a')]({'where':{'id':_0x3d4714[_0x4e57('0x47')]['id']}})[_0x4e57('0x27')](handleEntityNotFound(_0x5b6817,null))[_0x4e57('0x27')](saveUpdates(_0x3d4714[_0x4e57('0x4c')],null))[_0x4e57('0x27')](respondWithResult(_0x5b6817,null))[_0x4e57('0x46')](handleError(_0x5b6817,null));};exports[_0x4e57('0x26')]=function(_0x279383,_0x454d02){return db[_0x4e57('0x2f')][_0x4e57('0x4a')]({'where':{'id':_0x279383[_0x4e57('0x47')]['id']}})['then'](handleEntityNotFound(_0x454d02,null))[_0x4e57('0x27')](removeEntity(_0x454d02,null))[_0x4e57('0x46')](handleError(_0x454d02,null));};