2e3e25d402e5abb4920d9950c5deedec225dbe66
[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 _0x67b8=['reject','save','update','then','get','Dispositions','UserProfileResource','destroy','stack','name','send','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','VIRTUAL','options','Disposition','includeAll','include','findAll','rows','catch','show','params','keys','rawAttributes','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','error','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','count','set','Content-Range','apply'];(function(_0x393eac,_0x4505f3){var _0x37a891=function(_0x23825d){while(--_0x23825d){_0x393eac['push'](_0x393eac['shift']());}};_0x37a891(++_0x4505f3);}(_0x67b8,0x18b));var _0x867b=function(_0x1490ca,_0x3b8b8b){_0x1490ca=_0x1490ca-0x0;var _0x341e10=_0x67b8[_0x1490ca];return _0x341e10;};'use strict';var emlformat=require(_0x867b('0x0'));var rimraf=require(_0x867b('0x1'));var zipdir=require(_0x867b('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x867b('0x3'));var moment=require(_0x867b('0x4'));var BPromise=require(_0x867b('0x5'));var Mustache=require(_0x867b('0x6'));var util=require(_0x867b('0x7'));var path=require(_0x867b('0x8'));var sox=require(_0x867b('0x9'));var csv=require('to-csv');var ejs=require(_0x867b('0xa'));var fs=require('fs');var fs_extra=require(_0x867b('0xb'));var _=require(_0x867b('0xc'));var squel=require(_0x867b('0xd'));var crypto=require(_0x867b('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x867b('0xf'));var toCsv=require(_0x867b('0x10'));var querystring=require(_0x867b('0x11'));var Papa=require(_0x867b('0x12'));var Redis=require(_0x867b('0x13'));var authService=require(_0x867b('0x14'));var qs=require(_0x867b('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x867b('0x16'));var licenseUtil=require(_0x867b('0x17'));var db=require(_0x867b('0x18'))['db'];function respondWithStatusCode(_0x2703dd,_0x2b7845){_0x2b7845=_0x2b7845||0xcc;return function(_0x480c3d){if(_0x480c3d){return _0x2703dd[_0x867b('0x19')](_0x2b7845);}return _0x2703dd['status'](_0x2b7845)[_0x867b('0x1a')]();};}function respondWithResult(_0x54b7ac,_0x273bb5){_0x273bb5=_0x273bb5||0xc8;return function(_0x352f78){if(_0x352f78){return _0x54b7ac[_0x867b('0x1b')](_0x273bb5)[_0x867b('0x1c')](_0x352f78);}};}function respondWithFilteredResult(_0x4aeb77,_0xd3d4cf){return function(_0x7d013a){if(_0x7d013a){var _0x40cdf8=typeof _0xd3d4cf[_0x867b('0x1d')]==='undefined'&&typeof _0xd3d4cf[_0x867b('0x1e')]==='undefined';var _0xb58db5=_0x7d013a['count'];var _0x5bc00e=_0x40cdf8?0x0:_0xd3d4cf[_0x867b('0x1d')];var _0x3b7079=_0x40cdf8?_0x7d013a[_0x867b('0x1f')]:_0xd3d4cf['offset']+_0xd3d4cf['limit'];var _0x36a5ea;if(_0x3b7079>=_0xb58db5){_0x3b7079=_0xb58db5;_0x36a5ea=0xc8;}else{_0x36a5ea=0xce;}_0x4aeb77['status'](_0x36a5ea);return _0x4aeb77[_0x867b('0x20')](_0x867b('0x21'),_0x5bc00e+'-'+_0x3b7079+'/'+_0xb58db5)['json'](_0x7d013a);}return null;};}function patchUpdates(_0x4749e2){return function(_0x1db604){try{jsonpatch[_0x867b('0x22')](_0x1db604,_0x4749e2,!![]);}catch(_0x2ab0e1){return BPromise[_0x867b('0x23')](_0x2ab0e1);}return _0x1db604[_0x867b('0x24')]();};}function saveUpdates(_0x151a02,_0x28d6e6){return function(_0x273fe1){if(_0x273fe1){return _0x273fe1[_0x867b('0x25')](_0x151a02)[_0x867b('0x26')](function(_0x51e597){return _0x51e597;});}return null;};}function removeEntity(_0x3066c9,_0x3f74fc){return function(_0x5426f2){if(_0x5426f2){return _0x5426f2['destroy']()[_0x867b('0x26')](function(){var _0x47838c=_0x5426f2[_0x867b('0x27')]({'plain':!![]});var _0x1bf1ad=_0x867b('0x28');return db[_0x867b('0x29')][_0x867b('0x2a')]({'where':{'type':_0x1bf1ad,'resourceId':_0x47838c['id']}})[_0x867b('0x26')](function(){return _0x5426f2;});})[_0x867b('0x26')](function(){_0x3066c9[_0x867b('0x1b')](0xcc)[_0x867b('0x1a')]();});}};}function handleEntityNotFound(_0xeb671c,_0x7c267b){return function(_0x127922){if(!_0x127922){_0xeb671c['sendStatus'](0x194);}return _0x127922;};}function handleError(_0x33155e,_0x59211d){_0x59211d=_0x59211d||0x1f4;return function(_0x299c5d){logger['error'](_0x299c5d[_0x867b('0x2b')]);if(_0x299c5d[_0x867b('0x2c')]){delete _0x299c5d[_0x867b('0x2c')];}_0x33155e[_0x867b('0x1b')](_0x59211d)[_0x867b('0x2d')](_0x299c5d);};}exports['index']=function(_0x4fb571,_0x50807f){var _0x43cb46={},_0x6074ac={},_0x5dae5c={'count':0x0,'rows':[]};var _0x41ae1b=_['map'](db['Disposition']['rawAttributes'],function(_0x35a21b){return{'name':_0x35a21b[_0x867b('0x2e')],'type':_0x35a21b[_0x867b('0x2f')][_0x867b('0x30')]};});_0x6074ac[_0x867b('0x31')]=_[_0x867b('0x32')](_0x41ae1b,_0x867b('0x2c'));_0x6074ac[_0x867b('0x33')]=_['keys'](_0x4fb571[_0x867b('0x33')]);_0x6074ac[_0x867b('0x34')]=_[_0x867b('0x35')](_0x6074ac[_0x867b('0x31')],_0x6074ac[_0x867b('0x33')]);_0x43cb46[_0x867b('0x36')]=_[_0x867b('0x35')](_0x6074ac[_0x867b('0x31')],qs[_0x867b('0x37')](_0x4fb571[_0x867b('0x33')]['fields']));_0x43cb46[_0x867b('0x36')]=_0x43cb46[_0x867b('0x36')][_0x867b('0x38')]?_0x43cb46[_0x867b('0x36')]:_0x6074ac[_0x867b('0x31')];if(!_0x4fb571[_0x867b('0x33')][_0x867b('0x39')](_0x867b('0x3a'))){_0x43cb46[_0x867b('0x1e')]=qs['limit'](_0x4fb571['query'][_0x867b('0x1e')]);_0x43cb46[_0x867b('0x1d')]=qs[_0x867b('0x1d')](_0x4fb571[_0x867b('0x33')][_0x867b('0x1d')]);}_0x43cb46[_0x867b('0x3b')]=qs[_0x867b('0x3c')](_0x4fb571[_0x867b('0x33')][_0x867b('0x3c')]);_0x43cb46['where']=qs[_0x867b('0x34')](_[_0x867b('0x3d')](_0x4fb571['query'],_0x6074ac[_0x867b('0x34')]),_0x41ae1b);if(_0x4fb571[_0x867b('0x33')][_0x867b('0x3e')]){_0x43cb46['where']=_[_0x867b('0x3f')](_0x43cb46[_0x867b('0x40')],{'$or':_['map'](_0x41ae1b,function(_0x41830c){if(_0x41830c[_0x867b('0x2f')]!==_0x867b('0x41')){var _0x51a1ce={};_0x51a1ce[_0x41830c[_0x867b('0x2c')]]={'$like':'%'+_0x4fb571[_0x867b('0x33')][_0x867b('0x3e')]+'%'};return _0x51a1ce;}})});}_0x43cb46=_[_0x867b('0x3f')]({},_0x43cb46,_0x4fb571[_0x867b('0x42')]);var _0x273da2={'where':_0x43cb46[_0x867b('0x40')]};return db[_0x867b('0x43')][_0x867b('0x1f')](_0x273da2)[_0x867b('0x26')](function(_0x4d2334){_0x5dae5c[_0x867b('0x1f')]=_0x4d2334;if(_0x4fb571[_0x867b('0x33')][_0x867b('0x44')]){_0x43cb46[_0x867b('0x45')]=[{'all':!![]}];}return db['Disposition'][_0x867b('0x46')](_0x43cb46);})['then'](function(_0x37ec23){_0x5dae5c[_0x867b('0x47')]=_0x37ec23;return _0x5dae5c;})[_0x867b('0x26')](respondWithFilteredResult(_0x50807f,_0x43cb46))[_0x867b('0x48')](handleError(_0x50807f,null));};exports[_0x867b('0x49')]=function(_0x4d34bd,_0x197857){var _0x346f79={'raw':!![],'where':{'id':_0x4d34bd[_0x867b('0x4a')]['id']}},_0x2841ab={};_0x2841ab[_0x867b('0x31')]=_[_0x867b('0x4b')](db[_0x867b('0x43')][_0x867b('0x4c')]);_0x2841ab[_0x867b('0x33')]=_[_0x867b('0x4b')](_0x4d34bd[_0x867b('0x33')]);_0x2841ab[_0x867b('0x34')]=_[_0x867b('0x35')](_0x2841ab[_0x867b('0x31')],_0x2841ab[_0x867b('0x33')]);_0x346f79[_0x867b('0x36')]=_[_0x867b('0x35')](_0x2841ab['model'],qs[_0x867b('0x37')](_0x4d34bd[_0x867b('0x33')][_0x867b('0x37')]));_0x346f79['attributes']=_0x346f79['attributes']['length']?_0x346f79[_0x867b('0x36')]:_0x2841ab[_0x867b('0x31')];if(_0x4d34bd[_0x867b('0x33')][_0x867b('0x44')]){_0x346f79['include']=[{'all':!![]}];}_0x346f79=_[_0x867b('0x3f')]({},_0x346f79,_0x4d34bd[_0x867b('0x42')]);return db['Disposition'][_0x867b('0x4d')](_0x346f79)[_0x867b('0x26')](handleEntityNotFound(_0x197857,null))[_0x867b('0x26')](respondWithResult(_0x197857,null))[_0x867b('0x48')](handleError(_0x197857,null));};exports[_0x867b('0x4e')]=function(_0x48abb8,_0x327e0d){return db[_0x867b('0x43')][_0x867b('0x4e')](_0x48abb8[_0x867b('0x4f')],{})[_0x867b('0x26')](function(_0x2011fb){var _0x205c18=_0x48abb8[_0x867b('0x50')][_0x867b('0x27')]({'plain':!![]});if(!_0x205c18)throw new Error(_0x867b('0x51'));if(_0x205c18[_0x867b('0x52')]===_0x867b('0x50')){var _0x28c00d=_0x2011fb[_0x867b('0x27')]({'plain':!![]});var _0x30e1af=_0x867b('0x28');return db[_0x867b('0x53')][_0x867b('0x4d')]({'where':{'name':_0x30e1af,'userProfileId':_0x205c18['userProfileId']},'raw':!![]})[_0x867b('0x26')](function(_0x5a12f1){if(_0x5a12f1&&_0x5a12f1[_0x867b('0x54')]===0x0){return db[_0x867b('0x29')][_0x867b('0x4e')]({'name':_0x28c00d['name'],'resourceId':_0x28c00d['id'],'type':_0x5a12f1[_0x867b('0x2c')],'sectionId':_0x5a12f1['id']},{})['then'](function(){return _0x2011fb;});}else{return _0x2011fb;}})[_0x867b('0x48')](function(_0x44d280){logger[_0x867b('0x55')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x44d280);throw _0x44d280;});}return _0x2011fb;})[_0x867b('0x26')](respondWithResult(_0x327e0d,0xc9))[_0x867b('0x48')](handleError(_0x327e0d,null));};exports[_0x867b('0x25')]=function(_0xbffa58,_0xa3992a){if(_0xbffa58[_0x867b('0x4f')]['id']){delete _0xbffa58[_0x867b('0x4f')]['id'];}return db[_0x867b('0x43')]['find']({'where':{'id':_0xbffa58[_0x867b('0x4a')]['id']}})[_0x867b('0x26')](handleEntityNotFound(_0xa3992a,null))[_0x867b('0x26')](saveUpdates(_0xbffa58[_0x867b('0x4f')],null))[_0x867b('0x26')](respondWithResult(_0xa3992a,null))[_0x867b('0x48')](handleError(_0xa3992a,null));};exports[_0x867b('0x2a')]=function(_0x18fe47,_0x134844){return db[_0x867b('0x43')][_0x867b('0x4d')]({'where':{'id':_0x18fe47[_0x867b('0x4a')]['id']}})[_0x867b('0x26')](handleEntityNotFound(_0x134844,null))[_0x867b('0x26')](removeEntity(_0x134844,null))[_0x867b('0x48')](handleError(_0x134844,null));};