Built motion from commit 994c64e1.|2.6.1
[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 _0xb138=['destroy','Dispositions','error','stack','name','send','index','Disposition','rawAttributes','fieldName','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filter','where','map','type','VIRTUAL','merge','options','includeAll','include','rows','catch','show','params','keys','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','squel','crypto','jsforce','to-csv','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then'];(function(_0x4f003d,_0x8eeb5f){var _0x5d5598=function(_0x5b8080){while(--_0x5b8080){_0x4f003d['push'](_0x4f003d['shift']());}};_0x5d5598(++_0x8eeb5f);}(_0xb138,0x1dd));var _0x8b13=function(_0x5c45d4,_0x6d9dca){_0x5c45d4=_0x5c45d4-0x0;var _0x3837d5=_0xb138[_0x5c45d4];return _0x3837d5;};'use strict';var emlformat=require(_0x8b13('0x0'));var rimraf=require(_0x8b13('0x1'));var zipdir=require(_0x8b13('0x2'));var jsonpatch=require(_0x8b13('0x3'));var rp=require(_0x8b13('0x4'));var moment=require(_0x8b13('0x5'));var BPromise=require(_0x8b13('0x6'));var Mustache=require('mustache');var util=require(_0x8b13('0x7'));var path=require(_0x8b13('0x8'));var sox=require(_0x8b13('0x9'));var csv=require('to-csv');var ejs=require(_0x8b13('0xa'));var fs=require('fs');var fs_extra=require(_0x8b13('0xb'));var _=require('lodash');var squel=require(_0x8b13('0xc'));var crypto=require(_0x8b13('0xd'));var jsforce=require(_0x8b13('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x8b13('0xf'));var querystring=require(_0x8b13('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x8b13('0x11'));var qs=require(_0x8b13('0x12'));var as=require(_0x8b13('0x13'));var hardwareService=require(_0x8b13('0x14'));var logger=require(_0x8b13('0x15'))('api');var utils=require(_0x8b13('0x16'));var config=require(_0x8b13('0x17'));var licenseUtil=require(_0x8b13('0x18'));var db=require(_0x8b13('0x19'))['db'];function respondWithStatusCode(_0xb227e0,_0x1893b1){_0x1893b1=_0x1893b1||0xcc;return function(_0x58f97e){if(_0x58f97e){return _0xb227e0['sendStatus'](_0x1893b1);}return _0xb227e0[_0x8b13('0x1a')](_0x1893b1)[_0x8b13('0x1b')]();};}function respondWithResult(_0x5f12b5,_0x51a935){_0x51a935=_0x51a935||0xc8;return function(_0x479773){if(_0x479773){return _0x5f12b5[_0x8b13('0x1a')](_0x51a935)[_0x8b13('0x1c')](_0x479773);}};}function respondWithFilteredResult(_0xf29086,_0x2c615a){return function(_0x13f956){if(_0x13f956){var _0x542357=typeof _0x2c615a[_0x8b13('0x1d')]===_0x8b13('0x1e')&&typeof _0x2c615a[_0x8b13('0x1f')]===_0x8b13('0x1e');var _0x3eed21=_0x13f956[_0x8b13('0x20')];var _0x10fbde=_0x542357?0x0:_0x2c615a[_0x8b13('0x1d')];var _0x4989d3=_0x542357?_0x13f956['count']:_0x2c615a[_0x8b13('0x1d')]+_0x2c615a[_0x8b13('0x1f')];var _0x14a8ac;if(_0x4989d3>=_0x3eed21){_0x4989d3=_0x3eed21;_0x14a8ac=0xc8;}else{_0x14a8ac=0xce;}_0xf29086[_0x8b13('0x1a')](_0x14a8ac);return _0xf29086[_0x8b13('0x21')](_0x8b13('0x22'),_0x10fbde+'-'+_0x4989d3+'/'+_0x3eed21)['json'](_0x13f956);}return null;};}function patchUpdates(_0x1e8a48){return function(_0x3c4d4f){try{jsonpatch[_0x8b13('0x23')](_0x3c4d4f,_0x1e8a48,!![]);}catch(_0x54a309){return BPromise['reject'](_0x54a309);}return _0x3c4d4f[_0x8b13('0x24')]();};}function saveUpdates(_0xcb7621,_0x4f9902){return function(_0x3187ed){if(_0x3187ed){return _0x3187ed[_0x8b13('0x25')](_0xcb7621)[_0x8b13('0x26')](function(_0x213280){return _0x213280;});}return null;};}function removeEntity(_0xc05d5c,_0x583639){return function(_0x339271){if(_0x339271){return _0x339271[_0x8b13('0x27')]()['then'](function(){var _0x33422f=_0x339271['get']({'plain':!![]});var _0x420772=_0x8b13('0x28');return db['UserProfileResource'][_0x8b13('0x27')]({'where':{'type':_0x420772,'resourceId':_0x33422f['id']}})[_0x8b13('0x26')](function(){return _0x339271;});})['then'](function(){_0xc05d5c[_0x8b13('0x1a')](0xcc)[_0x8b13('0x1b')]();});}};}function handleEntityNotFound(_0x410122,_0x4048e4){return function(_0x27fef3){if(!_0x27fef3){_0x410122['sendStatus'](0x194);}return _0x27fef3;};}function handleError(_0x6023f5,_0x1b09e2){_0x1b09e2=_0x1b09e2||0x1f4;return function(_0x3475d8){logger[_0x8b13('0x29')](_0x3475d8[_0x8b13('0x2a')]);if(_0x3475d8[_0x8b13('0x2b')]){delete _0x3475d8['name'];}_0x6023f5[_0x8b13('0x1a')](_0x1b09e2)[_0x8b13('0x2c')](_0x3475d8);};}exports[_0x8b13('0x2d')]=function(_0x9d2377,_0x23fde7){var _0x29946e={},_0x3304bd={},_0x44bce2={'count':0x0,'rows':[]};var _0x36f732=_['map'](db[_0x8b13('0x2e')][_0x8b13('0x2f')],function(_0x288ff7){return{'name':_0x288ff7[_0x8b13('0x30')],'type':_0x288ff7['type']['key']};});_0x3304bd[_0x8b13('0x31')]=_['map'](_0x36f732,'name');_0x3304bd[_0x8b13('0x32')]=_['keys'](_0x9d2377[_0x8b13('0x32')]);_0x3304bd[_0x8b13('0x33')]=_[_0x8b13('0x34')](_0x3304bd[_0x8b13('0x31')],_0x3304bd[_0x8b13('0x32')]);_0x29946e[_0x8b13('0x35')]=_[_0x8b13('0x34')](_0x3304bd[_0x8b13('0x31')],qs[_0x8b13('0x36')](_0x9d2377[_0x8b13('0x32')]['fields']));_0x29946e[_0x8b13('0x35')]=_0x29946e[_0x8b13('0x35')][_0x8b13('0x37')]?_0x29946e[_0x8b13('0x35')]:_0x3304bd[_0x8b13('0x31')];if(!_0x9d2377[_0x8b13('0x32')][_0x8b13('0x38')](_0x8b13('0x39'))){_0x29946e['limit']=qs[_0x8b13('0x1f')](_0x9d2377['query'][_0x8b13('0x1f')]);_0x29946e[_0x8b13('0x1d')]=qs[_0x8b13('0x1d')](_0x9d2377[_0x8b13('0x32')][_0x8b13('0x1d')]);}_0x29946e[_0x8b13('0x3a')]=qs['sort'](_0x9d2377['query'][_0x8b13('0x3b')]);_0x29946e['where']=qs[_0x8b13('0x33')](_['pick'](_0x9d2377[_0x8b13('0x32')],_0x3304bd[_0x8b13('0x33')]),_0x36f732);if(_0x9d2377[_0x8b13('0x32')][_0x8b13('0x3c')]){_0x29946e[_0x8b13('0x3d')]=_['merge'](_0x29946e['where'],{'$or':_[_0x8b13('0x3e')](_0x36f732,function(_0x595d8d){if(_0x595d8d[_0x8b13('0x3f')]!==_0x8b13('0x40')){var _0x4dc268={};_0x4dc268[_0x595d8d[_0x8b13('0x2b')]]={'$like':'%'+_0x9d2377[_0x8b13('0x32')][_0x8b13('0x3c')]+'%'};return _0x4dc268;}})});}_0x29946e=_[_0x8b13('0x41')]({},_0x29946e,_0x9d2377[_0x8b13('0x42')]);var _0x38ec75={'where':_0x29946e[_0x8b13('0x3d')]};return db['Disposition']['count'](_0x38ec75)['then'](function(_0x3eb3c5){_0x44bce2[_0x8b13('0x20')]=_0x3eb3c5;if(_0x9d2377[_0x8b13('0x32')][_0x8b13('0x43')]){_0x29946e[_0x8b13('0x44')]=[{'all':!![]}];}return db[_0x8b13('0x2e')]['findAll'](_0x29946e);})[_0x8b13('0x26')](function(_0x50e535){_0x44bce2[_0x8b13('0x45')]=_0x50e535;return _0x44bce2;})['then'](respondWithFilteredResult(_0x23fde7,_0x29946e))[_0x8b13('0x46')](handleError(_0x23fde7,null));};exports[_0x8b13('0x47')]=function(_0x272e4c,_0x28a9d1){var _0x1ae916={'raw':!![],'where':{'id':_0x272e4c[_0x8b13('0x48')]['id']}},_0x267b4c={};_0x267b4c['model']=_['keys'](db['Disposition'][_0x8b13('0x2f')]);_0x267b4c[_0x8b13('0x32')]=_[_0x8b13('0x49')](_0x272e4c[_0x8b13('0x32')]);_0x267b4c['filters']=_['intersection'](_0x267b4c[_0x8b13('0x31')],_0x267b4c['query']);_0x1ae916[_0x8b13('0x35')]=_[_0x8b13('0x34')](_0x267b4c[_0x8b13('0x31')],qs[_0x8b13('0x36')](_0x272e4c[_0x8b13('0x32')]['fields']));_0x1ae916[_0x8b13('0x35')]=_0x1ae916[_0x8b13('0x35')][_0x8b13('0x37')]?_0x1ae916[_0x8b13('0x35')]:_0x267b4c[_0x8b13('0x31')];if(_0x272e4c[_0x8b13('0x32')][_0x8b13('0x43')]){_0x1ae916[_0x8b13('0x44')]=[{'all':!![]}];}_0x1ae916=_[_0x8b13('0x41')]({},_0x1ae916,_0x272e4c['options']);return db[_0x8b13('0x2e')]['find'](_0x1ae916)[_0x8b13('0x26')](handleEntityNotFound(_0x28a9d1,null))[_0x8b13('0x26')](respondWithResult(_0x28a9d1,null))[_0x8b13('0x46')](handleError(_0x28a9d1,null));};exports['create']=function(_0x148efb,_0x35f612){return db[_0x8b13('0x2e')][_0x8b13('0x4a')](_0x148efb[_0x8b13('0x4b')],{})[_0x8b13('0x26')](function(_0x453cd4){var _0x534636=_0x148efb[_0x8b13('0x4c')]['get']({'plain':!![]});if(!_0x534636)throw new Error(_0x8b13('0x4d'));if(_0x534636[_0x8b13('0x4e')]===_0x8b13('0x4c')){var _0x435867=_0x453cd4[_0x8b13('0x4f')]({'plain':!![]});var _0x22e613=_0x8b13('0x28');return db[_0x8b13('0x50')][_0x8b13('0x51')]({'where':{'name':_0x22e613,'userProfileId':_0x534636[_0x8b13('0x52')]},'raw':!![]})[_0x8b13('0x26')](function(_0xddac8e){if(_0xddac8e&&_0xddac8e[_0x8b13('0x53')]===0x0){return db[_0x8b13('0x54')][_0x8b13('0x4a')]({'name':_0x435867[_0x8b13('0x2b')],'resourceId':_0x435867['id'],'type':_0xddac8e[_0x8b13('0x2b')],'sectionId':_0xddac8e['id']},{})['then'](function(){return _0x453cd4;});}else{return _0x453cd4;}})[_0x8b13('0x46')](function(_0x20e89c){logger['error'](_0x8b13('0x55'),_0x20e89c);throw _0x20e89c;});}return _0x453cd4;})[_0x8b13('0x26')](respondWithResult(_0x35f612,0xc9))[_0x8b13('0x46')](handleError(_0x35f612,null));};exports[_0x8b13('0x25')]=function(_0x25cb45,_0x12549b){if(_0x25cb45[_0x8b13('0x4b')]['id']){delete _0x25cb45[_0x8b13('0x4b')]['id'];}return db[_0x8b13('0x2e')][_0x8b13('0x51')]({'where':{'id':_0x25cb45[_0x8b13('0x48')]['id']}})[_0x8b13('0x26')](handleEntityNotFound(_0x12549b,null))[_0x8b13('0x26')](saveUpdates(_0x25cb45[_0x8b13('0x4b')],null))[_0x8b13('0x26')](respondWithResult(_0x12549b,null))['catch'](handleError(_0x12549b,null));};exports[_0x8b13('0x27')]=function(_0x2f065f,_0x47a3fa){return db[_0x8b13('0x2e')][_0x8b13('0x51')]({'where':{'id':_0x2f065f[_0x8b13('0x48')]['id']}})[_0x8b13('0x26')](handleEntityNotFound(_0x47a3fa,null))[_0x8b13('0x26')](removeEntity(_0x47a3fa,null))['catch'](handleError(_0x47a3fa,null));};