Built motion from commit c116dc8b.|2.6.30
[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 _0x74d4=['options','Disposition','includeAll','include','findAll','rows','catch','show','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','eml-format','rimraf','zip-dir','request-promise','bluebird','util','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','reject','save','update','then','get','Dispositions','destroy','sendStatus','stack','name','send','index','map','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL'];(function(_0x20beae,_0x5eac6d){var _0xf5725=function(_0x926a3b){while(--_0x926a3b){_0x20beae['push'](_0x20beae['shift']());}};_0xf5725(++_0x5eac6d);}(_0x74d4,0x112));var _0x474d=function(_0x1cdf36,_0x2dbe1d){_0x1cdf36=_0x1cdf36-0x0;var _0x8ae327=_0x74d4[_0x1cdf36];return _0x8ae327;};'use strict';var emlformat=require(_0x474d('0x0'));var rimraf=require(_0x474d('0x1'));var zipdir=require(_0x474d('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x474d('0x3'));var moment=require('moment');var BPromise=require(_0x474d('0x4'));var Mustache=require('mustache');var util=require(_0x474d('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0x474d('0x6'));var ejs=require(_0x474d('0x7'));var fs=require('fs');var fs_extra=require(_0x474d('0x8'));var _=require(_0x474d('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x474d('0xa'));var deskjs=require(_0x474d('0xb'));var toCsv=require(_0x474d('0x6'));var querystring=require('querystring');var Papa=require(_0x474d('0xc'));var Redis=require(_0x474d('0xd'));var authService=require(_0x474d('0xe'));var qs=require(_0x474d('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x474d('0x10'));var logger=require(_0x474d('0x11'))('api');var utils=require(_0x474d('0x12'));var config=require(_0x474d('0x13'));var licenseUtil=require(_0x474d('0x14'));var db=require(_0x474d('0x15'))['db'];function respondWithStatusCode(_0x2ea131,_0x244254){_0x244254=_0x244254||0xcc;return function(_0x3f3ce0){if(_0x3f3ce0){return _0x2ea131['sendStatus'](_0x244254);}return _0x2ea131[_0x474d('0x16')](_0x244254)[_0x474d('0x17')]();};}function respondWithResult(_0x257d22,_0x486d46){_0x486d46=_0x486d46||0xc8;return function(_0x490542){if(_0x490542){return _0x257d22['status'](_0x486d46)[_0x474d('0x18')](_0x490542);}};}function respondWithFilteredResult(_0x5d6ea5,_0x10d90b){return function(_0x3a0eb4){if(_0x3a0eb4){var _0x49e9cf=typeof _0x10d90b['offset']==='undefined'&&typeof _0x10d90b[_0x474d('0x19')]===_0x474d('0x1a');var _0x5e4eea=_0x3a0eb4[_0x474d('0x1b')];var _0x1ba4ac=_0x49e9cf?0x0:_0x10d90b[_0x474d('0x1c')];var _0x3655ee=_0x49e9cf?_0x3a0eb4[_0x474d('0x1b')]:_0x10d90b['offset']+_0x10d90b[_0x474d('0x19')];var _0x25e3f8;if(_0x3655ee>=_0x5e4eea){_0x3655ee=_0x5e4eea;_0x25e3f8=0xc8;}else{_0x25e3f8=0xce;}_0x5d6ea5['status'](_0x25e3f8);return _0x5d6ea5[_0x474d('0x1d')](_0x474d('0x1e'),_0x1ba4ac+'-'+_0x3655ee+'/'+_0x5e4eea)[_0x474d('0x18')](_0x3a0eb4);}return null;};}function patchUpdates(_0x15eb1c){return function(_0x9a3f14){try{jsonpatch[_0x474d('0x1f')](_0x9a3f14,_0x15eb1c,!![]);}catch(_0x5cfd34){return BPromise[_0x474d('0x20')](_0x5cfd34);}return _0x9a3f14[_0x474d('0x21')]();};}function saveUpdates(_0x16a4b6,_0x2bc9ed){return function(_0x6e8b2f){if(_0x6e8b2f){return _0x6e8b2f[_0x474d('0x22')](_0x16a4b6)['then'](function(_0x15e3cd){return _0x15e3cd;});}return null;};}function removeEntity(_0x579309,_0x362984){return function(_0x52e007){if(_0x52e007){return _0x52e007['destroy']()[_0x474d('0x23')](function(){var _0x48349f=_0x52e007[_0x474d('0x24')]({'plain':!![]});var _0x4af5a6=_0x474d('0x25');return db['UserProfileResource'][_0x474d('0x26')]({'where':{'type':_0x4af5a6,'resourceId':_0x48349f['id']}})[_0x474d('0x23')](function(){return _0x52e007;});})['then'](function(){_0x579309[_0x474d('0x16')](0xcc)[_0x474d('0x17')]();});}};}function handleEntityNotFound(_0x164e45,_0x555257){return function(_0x3fbbaf){if(!_0x3fbbaf){_0x164e45[_0x474d('0x27')](0x194);}return _0x3fbbaf;};}function handleError(_0x4fe2da,_0x3dbb84){_0x3dbb84=_0x3dbb84||0x1f4;return function(_0x763361){logger['error'](_0x763361[_0x474d('0x28')]);if(_0x763361['name']){delete _0x763361[_0x474d('0x29')];}_0x4fe2da[_0x474d('0x16')](_0x3dbb84)[_0x474d('0x2a')](_0x763361);};}exports[_0x474d('0x2b')]=function(_0x33c0df,_0x334295){var _0x401318={},_0x5f0b15={},_0x4190cc={'count':0x0,'rows':[]};var _0x13dbce=_[_0x474d('0x2c')](db['Disposition'][_0x474d('0x2d')],function(_0x2db915){return{'name':_0x2db915[_0x474d('0x2e')],'type':_0x2db915[_0x474d('0x2f')][_0x474d('0x30')]};});_0x5f0b15['model']=_[_0x474d('0x2c')](_0x13dbce,_0x474d('0x29'));_0x5f0b15[_0x474d('0x31')]=_[_0x474d('0x32')](_0x33c0df[_0x474d('0x31')]);_0x5f0b15[_0x474d('0x33')]=_[_0x474d('0x34')](_0x5f0b15['model'],_0x5f0b15[_0x474d('0x31')]);_0x401318['attributes']=_[_0x474d('0x34')](_0x5f0b15[_0x474d('0x35')],qs[_0x474d('0x36')](_0x33c0df[_0x474d('0x31')][_0x474d('0x36')]));_0x401318[_0x474d('0x37')]=_0x401318[_0x474d('0x37')][_0x474d('0x38')]?_0x401318['attributes']:_0x5f0b15['model'];if(!_0x33c0df['query'][_0x474d('0x39')](_0x474d('0x3a'))){_0x401318[_0x474d('0x19')]=qs['limit'](_0x33c0df[_0x474d('0x31')][_0x474d('0x19')]);_0x401318[_0x474d('0x1c')]=qs[_0x474d('0x1c')](_0x33c0df[_0x474d('0x31')][_0x474d('0x1c')]);}_0x401318[_0x474d('0x3b')]=qs[_0x474d('0x3c')](_0x33c0df['query'][_0x474d('0x3c')]);_0x401318[_0x474d('0x3d')]=qs[_0x474d('0x33')](_[_0x474d('0x3e')](_0x33c0df[_0x474d('0x31')],_0x5f0b15['filters']),_0x13dbce);if(_0x33c0df[_0x474d('0x31')][_0x474d('0x3f')]){_0x401318[_0x474d('0x3d')]=_[_0x474d('0x40')](_0x401318['where'],{'$or':_['map'](_0x13dbce,function(_0x2c0203){if(_0x2c0203['type']!==_0x474d('0x41')){var _0x57646f={};_0x57646f[_0x2c0203[_0x474d('0x29')]]={'$like':'%'+_0x33c0df[_0x474d('0x31')][_0x474d('0x3f')]+'%'};return _0x57646f;}})});}_0x401318=_[_0x474d('0x40')]({},_0x401318,_0x33c0df[_0x474d('0x42')]);var _0x26d0e2={'where':_0x401318['where']};return db[_0x474d('0x43')][_0x474d('0x1b')](_0x26d0e2)['then'](function(_0x5a5d91){_0x4190cc[_0x474d('0x1b')]=_0x5a5d91;if(_0x33c0df[_0x474d('0x31')][_0x474d('0x44')]){_0x401318[_0x474d('0x45')]=[{'all':!![]}];}return db['Disposition'][_0x474d('0x46')](_0x401318);})[_0x474d('0x23')](function(_0x1c04d2){_0x4190cc[_0x474d('0x47')]=_0x1c04d2;return _0x4190cc;})[_0x474d('0x23')](respondWithFilteredResult(_0x334295,_0x401318))[_0x474d('0x48')](handleError(_0x334295,null));};exports[_0x474d('0x49')]=function(_0x57fb93,_0x27370d){var _0x3f6929={'raw':!![],'where':{'id':_0x57fb93['params']['id']}},_0x767c95={};_0x767c95['model']=_['keys'](db[_0x474d('0x43')][_0x474d('0x2d')]);_0x767c95[_0x474d('0x31')]=_[_0x474d('0x32')](_0x57fb93[_0x474d('0x31')]);_0x767c95[_0x474d('0x33')]=_[_0x474d('0x34')](_0x767c95[_0x474d('0x35')],_0x767c95['query']);_0x3f6929['attributes']=_[_0x474d('0x34')](_0x767c95['model'],qs[_0x474d('0x36')](_0x57fb93['query'][_0x474d('0x36')]));_0x3f6929[_0x474d('0x37')]=_0x3f6929[_0x474d('0x37')][_0x474d('0x38')]?_0x3f6929[_0x474d('0x37')]:_0x767c95['model'];if(_0x57fb93[_0x474d('0x31')][_0x474d('0x44')]){_0x3f6929[_0x474d('0x45')]=[{'all':!![]}];}_0x3f6929=_[_0x474d('0x40')]({},_0x3f6929,_0x57fb93[_0x474d('0x42')]);return db['Disposition'][_0x474d('0x4a')](_0x3f6929)['then'](handleEntityNotFound(_0x27370d,null))[_0x474d('0x23')](respondWithResult(_0x27370d,null))['catch'](handleError(_0x27370d,null));};exports[_0x474d('0x4b')]=function(_0xa1e4a,_0xca5f6b){return db[_0x474d('0x43')][_0x474d('0x4b')](_0xa1e4a['body'],{})['then'](function(_0x3a6783){var _0x2a922c=_0xa1e4a[_0x474d('0x4c')]['get']({'plain':!![]});if(!_0x2a922c)throw new Error(_0x474d('0x4d'));if(_0x2a922c[_0x474d('0x4e')]===_0x474d('0x4c')){var _0x15be73=_0x3a6783[_0x474d('0x24')]({'plain':!![]});var _0x3f4413=_0x474d('0x25');return db[_0x474d('0x4f')][_0x474d('0x4a')]({'where':{'name':_0x3f4413,'userProfileId':_0x2a922c['userProfileId']},'raw':!![]})[_0x474d('0x23')](function(_0x253958){if(_0x253958&&_0x253958[_0x474d('0x50')]===0x0){return db[_0x474d('0x51')][_0x474d('0x4b')]({'name':_0x15be73[_0x474d('0x29')],'resourceId':_0x15be73['id'],'type':_0x253958[_0x474d('0x29')],'sectionId':_0x253958['id']},{})['then'](function(){return _0x3a6783;});}else{return _0x3a6783;}})[_0x474d('0x48')](function(_0x1b3fd3){logger['error'](_0x474d('0x52'),_0x1b3fd3);throw _0x1b3fd3;});}return _0x3a6783;})[_0x474d('0x23')](respondWithResult(_0xca5f6b,0xc9))['catch'](handleError(_0xca5f6b,null));};exports[_0x474d('0x22')]=function(_0x790eba,_0x5f02b5){if(_0x790eba[_0x474d('0x53')]['id']){delete _0x790eba[_0x474d('0x53')]['id'];}return db[_0x474d('0x43')][_0x474d('0x4a')]({'where':{'id':_0x790eba[_0x474d('0x54')]['id']}})[_0x474d('0x23')](handleEntityNotFound(_0x5f02b5,null))['then'](saveUpdates(_0x790eba[_0x474d('0x53')],null))[_0x474d('0x23')](respondWithResult(_0x5f02b5,null))[_0x474d('0x48')](handleError(_0x5f02b5,null));};exports['destroy']=function(_0x31de5b,_0x53abdd){return db[_0x474d('0x43')][_0x474d('0x4a')]({'where':{'id':_0x31de5b[_0x474d('0x54')]['id']}})[_0x474d('0x23')](handleEntityNotFound(_0x53abdd,null))[_0x474d('0x23')](removeEntity(_0x53abdd,null))['catch'](handleError(_0x53abdd,null));};