Built motion from commit (unavailable).|2.5.13
[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 _0x3cdd=['order','sort','where','filter','merge','options','Disposition','includeAll','include','findAll','rows','catch','show','params','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','lodash','squel','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','get','Dispositions','UserProfileResource','destroy','error','stack','name','send','rawAttributes','fieldName','key','map','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit'];(function(_0x305540,_0x24db3f){var _0x3f229d=function(_0x2a015a){while(--_0x2a015a){_0x305540['push'](_0x305540['shift']());}};_0x3f229d(++_0x24db3f);}(_0x3cdd,0xae));var _0xd3cd=function(_0x37d181,_0x1fac07){_0x37d181=_0x37d181-0x0;var _0xaf97da=_0x3cdd[_0x37d181];return _0xaf97da;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xd3cd('0x0'));var rimraf=require(_0xd3cd('0x1'));var zipdir=require(_0xd3cd('0x2'));var jsonpatch=require(_0xd3cd('0x3'));var rp=require('request-promise');var moment=require(_0xd3cd('0x4'));var BPromise=require(_0xd3cd('0x5'));var Mustache=require(_0xd3cd('0x6'));var util=require('util');var path=require(_0xd3cd('0x7'));var sox=require(_0xd3cd('0x8'));var csv=require(_0xd3cd('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xd3cd('0xa'));var squel=require(_0xd3cd('0xb'));var crypto=require('crypto');var jsforce=require(_0xd3cd('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xd3cd('0xd'));var Papa=require('papaparse');var Redis=require(_0xd3cd('0xe'));var authService=require(_0xd3cd('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xd3cd('0x10'));var hardwareService=require(_0xd3cd('0x11'));var logger=require('../../config/logger')('api');var utils=require(_0xd3cd('0x12'));var config=require(_0xd3cd('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0xd3cd('0x14'))['db'];function respondWithStatusCode(_0x5fe9ae,_0xbff2a4){_0xbff2a4=_0xbff2a4||0xcc;return function(_0x5897d8){if(_0x5897d8){return _0x5fe9ae[_0xd3cd('0x15')](_0xbff2a4);}return _0x5fe9ae['status'](_0xbff2a4)[_0xd3cd('0x16')]();};}function respondWithResult(_0x11fd15,_0x39f704){_0x39f704=_0x39f704||0xc8;return function(_0x5e681e){if(_0x5e681e){return _0x11fd15[_0xd3cd('0x17')](_0x39f704)[_0xd3cd('0x18')](_0x5e681e);}};}function respondWithFilteredResult(_0x183b26,_0x5b0a44){return function(_0x5a8533){if(_0x5a8533){var _0x2ad6f4=_0x5a8533[_0xd3cd('0x19')],_0x593d59=_0x5b0a44[_0xd3cd('0x1a')],_0x536e18=_0x5b0a44[_0xd3cd('0x1a')]+_0x5b0a44[_0xd3cd('0x1b')],_0x1941ce;if(_0x536e18>=_0x2ad6f4){_0x536e18=_0x2ad6f4;_0x1941ce=0xc8;}else{_0x1941ce=0xce;}_0x183b26[_0xd3cd('0x17')](_0x1941ce);return _0x183b26[_0xd3cd('0x1c')](_0xd3cd('0x1d'),_0x593d59+'-'+_0x536e18+'/'+_0x2ad6f4)[_0xd3cd('0x18')](_0x5a8533);}return null;};}function patchUpdates(_0x2bc6f3){return function(_0x517d1e){try{jsonpatch[_0xd3cd('0x1e')](_0x517d1e,_0x2bc6f3,!![]);}catch(_0x1148ae){return BPromise[_0xd3cd('0x1f')](_0x1148ae);}return _0x517d1e[_0xd3cd('0x20')]();};}function saveUpdates(_0x538c57,_0x3534fd){return function(_0x425d02){if(_0x425d02){return _0x425d02[_0xd3cd('0x21')](_0x538c57)[_0xd3cd('0x22')](function(_0x47b70d){return _0x47b70d;});}return null;};}function removeEntity(_0xcb8421,_0x252c86){return function(_0xac7c52){if(_0xac7c52){return _0xac7c52['destroy']()[_0xd3cd('0x22')](function(){var _0x52bdc2=_0xac7c52[_0xd3cd('0x23')]({'plain':!![]});var _0x1fa713=_0xd3cd('0x24');return db[_0xd3cd('0x25')][_0xd3cd('0x26')]({'where':{'type':_0x1fa713,'resourceId':_0x52bdc2['id']}})[_0xd3cd('0x22')](function(){return _0xac7c52;});})[_0xd3cd('0x22')](function(){_0xcb8421[_0xd3cd('0x17')](0xcc)[_0xd3cd('0x16')]();});}};}function handleEntityNotFound(_0x3f95ee,_0x2a3657){return function(_0x1ed4f5){if(!_0x1ed4f5){_0x3f95ee['sendStatus'](0x194);}return _0x1ed4f5;};}function handleError(_0x34f5a1,_0x54f584){_0x54f584=_0x54f584||0x1f4;return function(_0x197e3f){logger[_0xd3cd('0x27')](_0x197e3f[_0xd3cd('0x28')]);if(_0x197e3f[_0xd3cd('0x29')]){delete _0x197e3f[_0xd3cd('0x29')];}_0x34f5a1['status'](_0x54f584)[_0xd3cd('0x2a')](_0x197e3f);};}exports['index']=function(_0x5f32dc,_0x527832){var _0x1958aa={},_0x497d3a={},_0x2ec059={'count':0x0,'rows':[]};var _0x438481=_['map'](db['Disposition'][_0xd3cd('0x2b')],function(_0x2926d5){return{'name':_0x2926d5[_0xd3cd('0x2c')],'type':_0x2926d5['type'][_0xd3cd('0x2d')]};});_0x497d3a['model']=_[_0xd3cd('0x2e')](_0x438481,'name');_0x497d3a[_0xd3cd('0x2f')]=_[_0xd3cd('0x30')](_0x5f32dc[_0xd3cd('0x2f')]);_0x497d3a[_0xd3cd('0x31')]=_[_0xd3cd('0x32')](_0x497d3a[_0xd3cd('0x33')],_0x497d3a[_0xd3cd('0x2f')]);_0x1958aa[_0xd3cd('0x34')]=_[_0xd3cd('0x32')](_0x497d3a[_0xd3cd('0x33')],qs[_0xd3cd('0x35')](_0x5f32dc[_0xd3cd('0x2f')][_0xd3cd('0x35')]));_0x1958aa[_0xd3cd('0x34')]=_0x1958aa[_0xd3cd('0x34')][_0xd3cd('0x36')]?_0x1958aa['attributes']:_0x497d3a['model'];if(!_0x5f32dc[_0xd3cd('0x2f')][_0xd3cd('0x37')](_0xd3cd('0x38'))){_0x1958aa[_0xd3cd('0x1b')]=qs[_0xd3cd('0x1b')](_0x5f32dc['query'][_0xd3cd('0x1b')]);_0x1958aa[_0xd3cd('0x1a')]=qs['offset'](_0x5f32dc[_0xd3cd('0x2f')]['offset']);}_0x1958aa[_0xd3cd('0x39')]=qs[_0xd3cd('0x3a')](_0x5f32dc[_0xd3cd('0x2f')][_0xd3cd('0x3a')]);_0x1958aa[_0xd3cd('0x3b')]=qs[_0xd3cd('0x31')](_['pick'](_0x5f32dc[_0xd3cd('0x2f')],_0x497d3a[_0xd3cd('0x31')]),_0x438481);if(_0x5f32dc[_0xd3cd('0x2f')][_0xd3cd('0x3c')]){_0x1958aa['where']=_[_0xd3cd('0x3d')](_0x1958aa[_0xd3cd('0x3b')],{'$or':_[_0xd3cd('0x2e')](_0x438481,function(_0x4bcdb8){if(_0x4bcdb8['type']!=='VIRTUAL'){var _0x4894b1={};_0x4894b1[_0x4bcdb8[_0xd3cd('0x29')]]={'$like':'%'+_0x5f32dc[_0xd3cd('0x2f')][_0xd3cd('0x3c')]+'%'};return _0x4894b1;}})});}_0x1958aa=_[_0xd3cd('0x3d')]({},_0x1958aa,_0x5f32dc[_0xd3cd('0x3e')]);var _0x25aa51={'where':_0x1958aa['where']};return db[_0xd3cd('0x3f')][_0xd3cd('0x19')](_0x25aa51)[_0xd3cd('0x22')](function(_0x27b03e){_0x2ec059['count']=_0x27b03e;if(_0x5f32dc[_0xd3cd('0x2f')][_0xd3cd('0x40')]){_0x1958aa[_0xd3cd('0x41')]=[{'all':!![]}];}return db[_0xd3cd('0x3f')][_0xd3cd('0x42')](_0x1958aa);})[_0xd3cd('0x22')](function(_0x53e06a){_0x2ec059[_0xd3cd('0x43')]=_0x53e06a;return _0x2ec059;})[_0xd3cd('0x22')](respondWithFilteredResult(_0x527832,_0x1958aa))[_0xd3cd('0x44')](handleError(_0x527832,null));};exports[_0xd3cd('0x45')]=function(_0x379953,_0x32cfe5){var _0x16971e={'raw':!![],'where':{'id':_0x379953[_0xd3cd('0x46')]['id']}},_0x4e1716={};_0x4e1716['model']=_[_0xd3cd('0x30')](db[_0xd3cd('0x3f')][_0xd3cd('0x2b')]);_0x4e1716['query']=_[_0xd3cd('0x30')](_0x379953[_0xd3cd('0x2f')]);_0x4e1716[_0xd3cd('0x31')]=_[_0xd3cd('0x32')](_0x4e1716[_0xd3cd('0x33')],_0x4e1716['query']);_0x16971e['attributes']=_[_0xd3cd('0x32')](_0x4e1716['model'],qs[_0xd3cd('0x35')](_0x379953['query'][_0xd3cd('0x35')]));_0x16971e['attributes']=_0x16971e[_0xd3cd('0x34')][_0xd3cd('0x36')]?_0x16971e[_0xd3cd('0x34')]:_0x4e1716[_0xd3cd('0x33')];if(_0x379953[_0xd3cd('0x2f')][_0xd3cd('0x40')]){_0x16971e[_0xd3cd('0x41')]=[{'all':!![]}];}_0x16971e=_[_0xd3cd('0x3d')]({},_0x16971e,_0x379953[_0xd3cd('0x3e')]);return db[_0xd3cd('0x3f')]['find'](_0x16971e)[_0xd3cd('0x22')](handleEntityNotFound(_0x32cfe5,null))['then'](respondWithResult(_0x32cfe5,null))[_0xd3cd('0x44')](handleError(_0x32cfe5,null));};exports[_0xd3cd('0x47')]=function(_0x335797,_0x569013){return db[_0xd3cd('0x3f')]['create'](_0x335797[_0xd3cd('0x48')],{})[_0xd3cd('0x22')](function(_0x2a5547){var _0x1b7a0d=_0x335797[_0xd3cd('0x49')]['get']({'plain':!![]});if(!_0x1b7a0d)throw new Error(_0xd3cd('0x4a'));if(_0x1b7a0d['role']===_0xd3cd('0x49')){var _0x2163a4=_0x2a5547['get']({'plain':!![]});var _0x5314c7=_0xd3cd('0x24');return db[_0xd3cd('0x4b')][_0xd3cd('0x4c')]({'where':{'name':_0x5314c7,'userProfileId':_0x1b7a0d['userProfileId']},'raw':!![]})[_0xd3cd('0x22')](function(_0xce48fe){if(_0xce48fe&&_0xce48fe['autoAssociation']===0x0){return db[_0xd3cd('0x25')][_0xd3cd('0x47')]({'name':_0x2163a4[_0xd3cd('0x29')],'resourceId':_0x2163a4['id'],'type':_0xce48fe['name'],'sectionId':_0xce48fe['id']},{})[_0xd3cd('0x22')](function(){return _0x2a5547;});}else{return _0x2a5547;}})[_0xd3cd('0x44')](function(_0x3ef194){logger[_0xd3cd('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3ef194);throw _0x3ef194;});}return _0x2a5547;})[_0xd3cd('0x22')](respondWithResult(_0x569013,0xc9))[_0xd3cd('0x44')](handleError(_0x569013,null));};exports[_0xd3cd('0x21')]=function(_0x2495eb,_0x17cda6){if(_0x2495eb['body']['id']){delete _0x2495eb[_0xd3cd('0x48')]['id'];}return db['Disposition'][_0xd3cd('0x4c')]({'where':{'id':_0x2495eb[_0xd3cd('0x46')]['id']}})['then'](handleEntityNotFound(_0x17cda6,null))['then'](saveUpdates(_0x2495eb['body'],null))['then'](respondWithResult(_0x17cda6,null))[_0xd3cd('0x44')](handleError(_0x17cda6,null));};exports[_0xd3cd('0x26')]=function(_0x4cfa6d,_0x27baf2){return db[_0xd3cd('0x3f')][_0xd3cd('0x4c')]({'where':{'id':_0x4cfa6d[_0xd3cd('0x46')]['id']}})['then'](handleEntityNotFound(_0x27baf2,null))[_0xd3cd('0x22')](removeEntity(_0x27baf2,null))[_0xd3cd('0x44')](handleError(_0x27baf2,null));};