b80aa4c350d74197f2afcc6e996642aacee587c7
[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 _0xf03d=['query','hasOwnProperty','limit','order','sort','where','pick','filters','filter','merge','options','Disposition','findAll','rows','show','params','includeAll','include','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','update','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','sendStatus','status','json','count','offset','Content-Range','apply','reject','save','then','destroy','get','Dispositions','UserProfileResource','error','stack','name','send','index','map','rawAttributes','type','key','model','keys','intersection','attributes','fields','length'];(function(_0x6c0123,_0x4c8d3b){var _0x5a87d2=function(_0x1ff614){while(--_0x1ff614){_0x6c0123['push'](_0x6c0123['shift']());}};_0x5a87d2(++_0x4c8d3b);}(_0xf03d,0x1a7));var _0xdf03=function(_0x4d0fbf,_0x280ba3){_0x4d0fbf=_0x4d0fbf-0x0;var _0x4fcaf4=_0xf03d[_0x4d0fbf];return _0x4fcaf4;};'use strict';var pdf=require(_0xdf03('0x0'));var emlformat=require(_0xdf03('0x1'));var rimraf=require(_0xdf03('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xdf03('0x3'));var rp=require(_0xdf03('0x4'));var moment=require(_0xdf03('0x5'));var BPromise=require(_0xdf03('0x6'));var Mustache=require(_0xdf03('0x7'));var util=require(_0xdf03('0x8'));var path=require(_0xdf03('0x9'));var sox=require(_0xdf03('0xa'));var csv=require(_0xdf03('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xdf03('0xc'));var squel=require('squel');var crypto=require(_0xdf03('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xdf03('0xe'));var toCsv=require(_0xdf03('0xb'));var querystring=require(_0xdf03('0xf'));var Papa=require(_0xdf03('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xdf03('0x11'));var as=require(_0xdf03('0x12'));var hardwareService=require(_0xdf03('0x13'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xdf03('0x14'));var licenseUtil=require(_0xdf03('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2f781d,_0x358892){_0x358892=_0x358892||0xcc;return function(_0x24d1a2){if(_0x24d1a2){return _0x2f781d[_0xdf03('0x16')](_0x358892);}return _0x2f781d[_0xdf03('0x17')](_0x358892)['end']();};}function respondWithResult(_0x5630a1,_0x5b8da2){_0x5b8da2=_0x5b8da2||0xc8;return function(_0x2d99c8){if(_0x2d99c8){return _0x5630a1[_0xdf03('0x17')](_0x5b8da2)[_0xdf03('0x18')](_0x2d99c8);}};}function respondWithFilteredResult(_0x2aa232,_0x5c82e3){return function(_0x43ab5d){if(_0x43ab5d){var _0x1b4b7f=_0x43ab5d[_0xdf03('0x19')],_0x3b936a=_0x5c82e3[_0xdf03('0x1a')],_0x3bb274=_0x5c82e3[_0xdf03('0x1a')]+_0x5c82e3['limit'],_0x216176;if(_0x3bb274>=_0x1b4b7f){_0x3bb274=_0x1b4b7f;_0x216176=0xc8;}else{_0x216176=0xce;}_0x2aa232[_0xdf03('0x17')](_0x216176);return _0x2aa232['set'](_0xdf03('0x1b'),_0x3b936a+'-'+_0x3bb274+'/'+_0x1b4b7f)[_0xdf03('0x18')](_0x43ab5d);}return null;};}function patchUpdates(_0x1af90e){return function(_0x472b47){try{jsonpatch[_0xdf03('0x1c')](_0x472b47,_0x1af90e,!![]);}catch(_0x3e5585){return BPromise[_0xdf03('0x1d')](_0x3e5585);}return _0x472b47[_0xdf03('0x1e')]();};}function saveUpdates(_0x4c5048,_0x2dd5c1){return function(_0x6b758a){if(_0x6b758a){return _0x6b758a['update'](_0x4c5048)[_0xdf03('0x1f')](function(_0x5006d4){return _0x5006d4;});}return null;};}function removeEntity(_0x2b32cc,_0x52e3a2){return function(_0x358836){if(_0x358836){return _0x358836[_0xdf03('0x20')]()[_0xdf03('0x1f')](function(){var _0x4a8890=_0x358836[_0xdf03('0x21')]({'plain':!![]});var _0x3879f4=_0xdf03('0x22');return db[_0xdf03('0x23')][_0xdf03('0x20')]({'where':{'type':_0x3879f4,'resourceId':_0x4a8890['id']}})[_0xdf03('0x1f')](function(){return _0x358836;});})[_0xdf03('0x1f')](function(){_0x2b32cc['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x132035,_0x2457a6){return function(_0x2c61cc){if(!_0x2c61cc){_0x132035['sendStatus'](0x194);}return _0x2c61cc;};}function handleError(_0x17df6d,_0x5ea754){_0x5ea754=_0x5ea754||0x1f4;return function(_0x9313a3){logger[_0xdf03('0x24')](_0x9313a3[_0xdf03('0x25')]);if(_0x9313a3[_0xdf03('0x26')]){delete _0x9313a3[_0xdf03('0x26')];}_0x17df6d[_0xdf03('0x17')](_0x5ea754)[_0xdf03('0x27')](_0x9313a3);};}exports[_0xdf03('0x28')]=function(_0x1ca481,_0x587303){var _0x2cc4f0={},_0xd1b147={},_0x59be44={'count':0x0,'rows':[]};var _0x31c04b=_[_0xdf03('0x29')](db['Disposition'][_0xdf03('0x2a')],function(_0x492540){return{'name':_0x492540['fieldName'],'type':_0x492540[_0xdf03('0x2b')][_0xdf03('0x2c')]};});_0xd1b147[_0xdf03('0x2d')]=_['map'](_0x31c04b,_0xdf03('0x26'));_0xd1b147['query']=_[_0xdf03('0x2e')](_0x1ca481['query']);_0xd1b147['filters']=_[_0xdf03('0x2f')](_0xd1b147['model'],_0xd1b147['query']);_0x2cc4f0[_0xdf03('0x30')]=_['intersection'](_0xd1b147[_0xdf03('0x2d')],qs[_0xdf03('0x31')](_0x1ca481['query'][_0xdf03('0x31')]));_0x2cc4f0[_0xdf03('0x30')]=_0x2cc4f0['attributes'][_0xdf03('0x32')]?_0x2cc4f0[_0xdf03('0x30')]:_0xd1b147['model'];if(!_0x1ca481[_0xdf03('0x33')][_0xdf03('0x34')]('nolimit')){_0x2cc4f0[_0xdf03('0x35')]=qs[_0xdf03('0x35')](_0x1ca481['query'][_0xdf03('0x35')]);_0x2cc4f0[_0xdf03('0x1a')]=qs['offset'](_0x1ca481[_0xdf03('0x33')][_0xdf03('0x1a')]);}_0x2cc4f0[_0xdf03('0x36')]=qs[_0xdf03('0x37')](_0x1ca481[_0xdf03('0x33')][_0xdf03('0x37')]);_0x2cc4f0[_0xdf03('0x38')]=qs['filters'](_[_0xdf03('0x39')](_0x1ca481[_0xdf03('0x33')],_0xd1b147[_0xdf03('0x3a')]),_0x31c04b);if(_0x1ca481[_0xdf03('0x33')][_0xdf03('0x3b')]){_0x2cc4f0[_0xdf03('0x38')]=_[_0xdf03('0x3c')](_0x2cc4f0['where'],{'$or':_[_0xdf03('0x29')](_0x31c04b,function(_0x4448c3){if(_0x4448c3[_0xdf03('0x2b')]!=='VIRTUAL'){var _0x2c92b7={};_0x2c92b7[_0x4448c3[_0xdf03('0x26')]]={'$like':'%'+_0x1ca481[_0xdf03('0x33')][_0xdf03('0x3b')]+'%'};return _0x2c92b7;}})});}_0x2cc4f0=_['merge']({},_0x2cc4f0,_0x1ca481[_0xdf03('0x3d')]);var _0x2ab9a7={'where':_0x2cc4f0[_0xdf03('0x38')]};return db['Disposition'][_0xdf03('0x19')](_0x2ab9a7)[_0xdf03('0x1f')](function(_0x188ba5){_0x59be44[_0xdf03('0x19')]=_0x188ba5;if(_0x1ca481['query']['includeAll']){_0x2cc4f0['include']=[{'all':!![]}];}return db[_0xdf03('0x3e')][_0xdf03('0x3f')](_0x2cc4f0);})[_0xdf03('0x1f')](function(_0x3ccf01){_0x59be44[_0xdf03('0x40')]=_0x3ccf01;return _0x59be44;})[_0xdf03('0x1f')](respondWithFilteredResult(_0x587303,_0x2cc4f0))['catch'](handleError(_0x587303,null));};exports[_0xdf03('0x41')]=function(_0xe99e4,_0x3a9d1c){var _0x29991a={'raw':!![],'where':{'id':_0xe99e4[_0xdf03('0x42')]['id']}},_0x485d22={};_0x485d22[_0xdf03('0x2d')]=_[_0xdf03('0x2e')](db['Disposition']['rawAttributes']);_0x485d22[_0xdf03('0x33')]=_[_0xdf03('0x2e')](_0xe99e4['query']);_0x485d22[_0xdf03('0x3a')]=_[_0xdf03('0x2f')](_0x485d22['model'],_0x485d22[_0xdf03('0x33')]);_0x29991a[_0xdf03('0x30')]=_[_0xdf03('0x2f')](_0x485d22[_0xdf03('0x2d')],qs[_0xdf03('0x31')](_0xe99e4[_0xdf03('0x33')][_0xdf03('0x31')]));_0x29991a['attributes']=_0x29991a[_0xdf03('0x30')][_0xdf03('0x32')]?_0x29991a['attributes']:_0x485d22['model'];if(_0xe99e4['query'][_0xdf03('0x43')]){_0x29991a[_0xdf03('0x44')]=[{'all':!![]}];}_0x29991a=_[_0xdf03('0x3c')]({},_0x29991a,_0xe99e4[_0xdf03('0x3d')]);return db[_0xdf03('0x3e')][_0xdf03('0x45')](_0x29991a)[_0xdf03('0x1f')](handleEntityNotFound(_0x3a9d1c,null))[_0xdf03('0x1f')](respondWithResult(_0x3a9d1c,null))[_0xdf03('0x46')](handleError(_0x3a9d1c,null));};exports[_0xdf03('0x47')]=function(_0x4658b4,_0x4881d5){return db[_0xdf03('0x3e')]['create'](_0x4658b4[_0xdf03('0x48')],{})[_0xdf03('0x1f')](function(_0x22dedb){var _0x548b84=_0x4658b4[_0xdf03('0x49')][_0xdf03('0x21')]({'plain':!![]});if(!_0x548b84)throw new Error(_0xdf03('0x4a'));if(_0x548b84[_0xdf03('0x4b')]==='user'){var _0x2c690d=_0x22dedb[_0xdf03('0x21')]({'plain':!![]});var _0x49db04='Dispositions';return db[_0xdf03('0x4c')][_0xdf03('0x45')]({'where':{'name':_0x49db04,'userProfileId':_0x548b84[_0xdf03('0x4d')]},'raw':!![]})[_0xdf03('0x1f')](function(_0x1c87c2){if(_0x1c87c2&&_0x1c87c2['autoAssociation']===0x0){return db[_0xdf03('0x23')][_0xdf03('0x47')]({'name':_0x2c690d[_0xdf03('0x26')],'resourceId':_0x2c690d['id'],'type':_0x1c87c2[_0xdf03('0x26')],'sectionId':_0x1c87c2['id']},{})[_0xdf03('0x1f')](function(){return _0x22dedb;});}else{return _0x22dedb;}})[_0xdf03('0x46')](function(_0x6de675){logger[_0xdf03('0x24')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x6de675);throw _0x6de675;});}return _0x22dedb;})[_0xdf03('0x1f')](respondWithResult(_0x4881d5,0xc9))[_0xdf03('0x46')](handleError(_0x4881d5,null));};exports[_0xdf03('0x4e')]=function(_0x5807f8,_0x12b2ae){if(_0x5807f8['body']['id']){delete _0x5807f8[_0xdf03('0x48')]['id'];}return db[_0xdf03('0x3e')][_0xdf03('0x45')]({'where':{'id':_0x5807f8['params']['id']}})[_0xdf03('0x1f')](handleEntityNotFound(_0x12b2ae,null))['then'](saveUpdates(_0x5807f8[_0xdf03('0x48')],null))[_0xdf03('0x1f')](respondWithResult(_0x12b2ae,null))[_0xdf03('0x46')](handleError(_0x12b2ae,null));};exports['destroy']=function(_0x1c10d0,_0x3c9180){return db[_0xdf03('0x3e')][_0xdf03('0x45')]({'where':{'id':_0x1c10d0[_0xdf03('0x42')]['id']}})[_0xdf03('0x1f')](handleEntityNotFound(_0x3c9180,null))[_0xdf03('0x1f')](removeEntity(_0x3c9180,null))[_0xdf03('0x46')](handleError(_0x3c9180,null));};