05748cfa1708301f95ecccf9babfcd2c19d52ceb
[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 _0x39a2=['end','undefined','count','offset','limit','set','json','apply','save','update','then','destroy','get','Dispositions','UserProfileResource','error','stack','name','send','render','merge','body','contact','message','interaction','account','index','map','Disposition','rawAttributes','fieldName','key','model','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','type','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','rimraf','zip-dir','fast-json-patch','moment','path','to-csv','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','sendStatus','status'];(function(_0x319199,_0x5107e5){var _0x1c3428=function(_0x5837f9){while(--_0x5837f9){_0x319199['push'](_0x319199['shift']());}};_0x1c3428(++_0x5107e5);}(_0x39a2,0xee));var _0x239a=function(_0x91ec40,_0xa1ec3b){_0x91ec40=_0x91ec40-0x0;var _0x428c7a=_0x39a2[_0x91ec40];return _0x428c7a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x239a('0x0'));var zipdir=require(_0x239a('0x1'));var jsonpatch=require(_0x239a('0x2'));var rp=require('request-promise');var moment=require(_0x239a('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x239a('0x4'));var sox=require('sox');var csv=require(_0x239a('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x239a('0x6'));var squel=require(_0x239a('0x7'));var crypto=require(_0x239a('0x8'));var jsforce=require(_0x239a('0x9'));var deskjs=require(_0x239a('0xa'));var toCsv=require(_0x239a('0x5'));var querystring=require(_0x239a('0xb'));var Papa=require(_0x239a('0xc'));var Redis=require(_0x239a('0xd'));var authService=require(_0x239a('0xe'));var qs=require(_0x239a('0xf'));var as=require(_0x239a('0x10'));var hardwareService=require(_0x239a('0x11'));var logger=require(_0x239a('0x12'))(_0x239a('0x13'));var utils=require(_0x239a('0x14'));var config=require(_0x239a('0x15'));var licenseUtil=require(_0x239a('0x16'));var db=require(_0x239a('0x17'))['db'];function respondWithStatusCode(_0x34ec07,_0x29dab4){_0x29dab4=_0x29dab4||0xcc;return function(_0x3576c){if(_0x3576c){return _0x34ec07[_0x239a('0x18')](_0x29dab4);}return _0x34ec07[_0x239a('0x19')](_0x29dab4)[_0x239a('0x1a')]();};}function respondWithResult(_0x2d1449,_0x4a1e65){_0x4a1e65=_0x4a1e65||0xc8;return function(_0x47f1e0){if(_0x47f1e0){return _0x2d1449[_0x239a('0x19')](_0x4a1e65)['json'](_0x47f1e0);}};}function respondWithFilteredResult(_0x4e0198,_0x5b7fae){return function(_0x2ba082){if(_0x2ba082){var _0x4b91a0=typeof _0x5b7fae['offset']===_0x239a('0x1b')&&typeof _0x5b7fae['limit']===_0x239a('0x1b');var _0x116155=_0x2ba082[_0x239a('0x1c')];var _0x18086c=_0x4b91a0?0x0:_0x5b7fae[_0x239a('0x1d')];var _0x24ba2e=_0x4b91a0?_0x2ba082[_0x239a('0x1c')]:_0x5b7fae[_0x239a('0x1d')]+_0x5b7fae[_0x239a('0x1e')];var _0x2e33f3;if(_0x24ba2e>=_0x116155){_0x24ba2e=_0x116155;_0x2e33f3=0xc8;}else{_0x2e33f3=0xce;}_0x4e0198['status'](_0x2e33f3);return _0x4e0198[_0x239a('0x1f')]('Content-Range',_0x18086c+'-'+_0x24ba2e+'/'+_0x116155)[_0x239a('0x20')](_0x2ba082);}return null;};}function patchUpdates(_0x1d803f){return function(_0x4561cf){try{jsonpatch[_0x239a('0x21')](_0x4561cf,_0x1d803f,!![]);}catch(_0x514616){return BPromise['reject'](_0x514616);}return _0x4561cf[_0x239a('0x22')]();};}function saveUpdates(_0x9052d4,_0x4a468e){return function(_0x379c94){if(_0x379c94){return _0x379c94[_0x239a('0x23')](_0x9052d4)[_0x239a('0x24')](function(_0x413ffd){return _0x413ffd;});}return null;};}function removeEntity(_0x594e68,_0x2577d0){return function(_0x4d7787){if(_0x4d7787){return _0x4d7787[_0x239a('0x25')]()[_0x239a('0x24')](function(){var _0x5384ec=_0x4d7787[_0x239a('0x26')]({'plain':!![]});var _0x15a451=_0x239a('0x27');return db[_0x239a('0x28')][_0x239a('0x25')]({'where':{'type':_0x15a451,'resourceId':_0x5384ec['id']}})[_0x239a('0x24')](function(){return _0x4d7787;});})[_0x239a('0x24')](function(){_0x594e68[_0x239a('0x19')](0xcc)[_0x239a('0x1a')]();});}};}function handleEntityNotFound(_0x503ce0,_0x115141){return function(_0x4a6dca){if(!_0x4a6dca){_0x503ce0['sendStatus'](0x194);}return _0x4a6dca;};}function handleError(_0xb07ca,_0x428b99){_0x428b99=_0x428b99||0x1f4;return function(_0x4a4b1b){logger[_0x239a('0x29')](_0x4a4b1b[_0x239a('0x2a')]);if(_0x4a4b1b['name']){delete _0x4a4b1b[_0x239a('0x2b')];}_0xb07ca[_0x239a('0x19')](_0x428b99)[_0x239a('0x2c')](_0x4a4b1b);};}function getMustacheRender(_0x90edf,_0x74fa64){return Mustache[_0x239a('0x2d')](_0x90edf,_[_0x239a('0x2e')](_0x74fa64[_0x239a('0x2f')],{'contact':_0x74fa64[_0x239a('0x30')],'message':_0x74fa64[_0x239a('0x31')],'agent':_0x74fa64['agent'],'interaction':_0x74fa64[_0x239a('0x32')],'account':_0x74fa64[_0x239a('0x33')]}))||'';}exports[_0x239a('0x34')]=function(_0x2cd3b5,_0x18fc58){var _0x192555={},_0x2919dc={},_0x84340a={'count':0x0,'rows':[]};var _0xe77da0=_[_0x239a('0x35')](db[_0x239a('0x36')][_0x239a('0x37')],function(_0x587f42){return{'name':_0x587f42[_0x239a('0x38')],'type':_0x587f42['type'][_0x239a('0x39')]};});_0x2919dc[_0x239a('0x3a')]=_[_0x239a('0x35')](_0xe77da0,'name');_0x2919dc['query']=_['keys'](_0x2cd3b5['query']);_0x2919dc[_0x239a('0x3b')]=_[_0x239a('0x3c')](_0x2919dc[_0x239a('0x3a')],_0x2919dc[_0x239a('0x3d')]);_0x192555[_0x239a('0x3e')]=_[_0x239a('0x3c')](_0x2919dc[_0x239a('0x3a')],qs[_0x239a('0x3f')](_0x2cd3b5[_0x239a('0x3d')][_0x239a('0x3f')]));_0x192555['attributes']=_0x192555[_0x239a('0x3e')][_0x239a('0x40')]?_0x192555[_0x239a('0x3e')]:_0x2919dc[_0x239a('0x3a')];if(!_0x2cd3b5[_0x239a('0x3d')][_0x239a('0x41')](_0x239a('0x42'))){_0x192555[_0x239a('0x1e')]=qs[_0x239a('0x1e')](_0x2cd3b5[_0x239a('0x3d')]['limit']);_0x192555[_0x239a('0x1d')]=qs[_0x239a('0x1d')](_0x2cd3b5[_0x239a('0x3d')][_0x239a('0x1d')]);}_0x192555[_0x239a('0x43')]=qs[_0x239a('0x44')](_0x2cd3b5[_0x239a('0x3d')][_0x239a('0x44')]);_0x192555[_0x239a('0x45')]=qs['filters'](_[_0x239a('0x46')](_0x2cd3b5[_0x239a('0x3d')],_0x2919dc[_0x239a('0x3b')]),_0xe77da0);if(_0x2cd3b5['query']['filter']){_0x192555[_0x239a('0x45')]=_['merge'](_0x192555[_0x239a('0x45')],{'$or':_[_0x239a('0x35')](_0xe77da0,function(_0x2bc8ab){if(_0x2bc8ab[_0x239a('0x47')]!==_0x239a('0x48')){var _0x3dc1bd={};_0x3dc1bd[_0x2bc8ab['name']]={'$like':'%'+_0x2cd3b5[_0x239a('0x3d')][_0x239a('0x49')]+'%'};return _0x3dc1bd;}})});}_0x192555=_[_0x239a('0x2e')]({},_0x192555,_0x2cd3b5[_0x239a('0x4a')]);var _0x253828={'where':_0x192555[_0x239a('0x45')]};return db[_0x239a('0x36')]['count'](_0x253828)[_0x239a('0x24')](function(_0x2667ac){_0x84340a[_0x239a('0x1c')]=_0x2667ac;if(_0x2cd3b5[_0x239a('0x3d')][_0x239a('0x4b')]){_0x192555[_0x239a('0x4c')]=[{'all':!![]}];}return db[_0x239a('0x36')][_0x239a('0x4d')](_0x192555);})[_0x239a('0x24')](function(_0x2e348c){_0x84340a[_0x239a('0x4e')]=_0x2e348c;return _0x84340a;})['then'](respondWithFilteredResult(_0x18fc58,_0x192555))[_0x239a('0x4f')](handleError(_0x18fc58,null));};exports[_0x239a('0x50')]=function(_0x412bf9,_0x3fa840){var _0x5b997f={'raw':!![],'where':{'id':_0x412bf9[_0x239a('0x51')]['id']}},_0x42d504={};_0x42d504[_0x239a('0x3a')]=_['keys'](db[_0x239a('0x36')][_0x239a('0x37')]);_0x42d504[_0x239a('0x3d')]=_['keys'](_0x412bf9[_0x239a('0x3d')]);_0x42d504[_0x239a('0x3b')]=_[_0x239a('0x3c')](_0x42d504[_0x239a('0x3a')],_0x42d504[_0x239a('0x3d')]);_0x5b997f[_0x239a('0x3e')]=_[_0x239a('0x3c')](_0x42d504['model'],qs['fields'](_0x412bf9['query'][_0x239a('0x3f')]));_0x5b997f['attributes']=_0x5b997f[_0x239a('0x3e')][_0x239a('0x40')]?_0x5b997f[_0x239a('0x3e')]:_0x42d504[_0x239a('0x3a')];if(_0x412bf9['query'][_0x239a('0x4b')]){_0x5b997f[_0x239a('0x4c')]=[{'all':!![]}];}_0x5b997f=_['merge']({},_0x5b997f,_0x412bf9[_0x239a('0x4a')]);return db[_0x239a('0x36')]['find'](_0x5b997f)[_0x239a('0x24')](handleEntityNotFound(_0x3fa840,null))[_0x239a('0x24')](respondWithResult(_0x3fa840,null))['catch'](handleError(_0x3fa840,null));};exports[_0x239a('0x52')]=function(_0x5bb189,_0x5ef58d){return db[_0x239a('0x36')]['create'](_0x5bb189[_0x239a('0x2f')],{})[_0x239a('0x24')](function(_0x4d9eb3){var _0x471417=_0x5bb189[_0x239a('0x53')][_0x239a('0x26')]({'plain':!![]});if(!_0x471417)throw new Error(_0x239a('0x54'));if(_0x471417[_0x239a('0x55')]===_0x239a('0x53')){var _0xe3004c=_0x4d9eb3[_0x239a('0x26')]({'plain':!![]});var _0x3e0bcc=_0x239a('0x27');return db[_0x239a('0x56')][_0x239a('0x57')]({'where':{'name':_0x3e0bcc,'userProfileId':_0x471417['userProfileId']},'raw':!![]})[_0x239a('0x24')](function(_0x2440f2){if(_0x2440f2&&_0x2440f2['autoAssociation']===0x0){return db[_0x239a('0x28')][_0x239a('0x52')]({'name':_0xe3004c[_0x239a('0x2b')],'resourceId':_0xe3004c['id'],'type':_0x2440f2['name'],'sectionId':_0x2440f2['id']},{})[_0x239a('0x24')](function(){return _0x4d9eb3;});}else{return _0x4d9eb3;}})[_0x239a('0x4f')](function(_0x434d7e){logger[_0x239a('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x434d7e);throw _0x434d7e;});}return _0x4d9eb3;})['then'](respondWithResult(_0x5ef58d,0xc9))['catch'](handleError(_0x5ef58d,null));};exports[_0x239a('0x23')]=function(_0xb4c198,_0xd3ed2b){if(_0xb4c198[_0x239a('0x2f')]['id']){delete _0xb4c198[_0x239a('0x2f')]['id'];}return db['Disposition']['find']({'where':{'id':_0xb4c198[_0x239a('0x51')]['id']}})[_0x239a('0x24')](handleEntityNotFound(_0xd3ed2b,null))['then'](saveUpdates(_0xb4c198['body'],null))[_0x239a('0x24')](respondWithResult(_0xd3ed2b,null))[_0x239a('0x4f')](handleError(_0xd3ed2b,null));};exports[_0x239a('0x25')]=function(_0x33382e,_0x4e39c0){return db[_0x239a('0x36')][_0x239a('0x57')]({'where':{'id':_0x33382e['params']['id']}})[_0x239a('0x24')](handleEntityNotFound(_0x4e39c0,null))[_0x239a('0x24')](removeEntity(_0x4e39c0,null))[_0x239a('0x4f')](handleError(_0x4e39c0,null));};