Built motion from commit efa66e19.|2.6.22
[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 _0x7278=['create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','get','UserProfileResource','destroy','error','stack','name','index','map','Disposition','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','offset','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','params'];(function(_0x170bba,_0x2be92f){var _0xa7c249=function(_0x2b6505){while(--_0x2b6505){_0x170bba['push'](_0x170bba['shift']());}};_0xa7c249(++_0x2be92f);}(_0x7278,0x161));var _0x8727=function(_0x3e4191,_0x38323a){_0x3e4191=_0x3e4191-0x0;var _0x4d54d2=_0x7278[_0x3e4191];return _0x4d54d2;};'use strict';var emlformat=require(_0x8727('0x0'));var rimraf=require(_0x8727('0x1'));var zipdir=require(_0x8727('0x2'));var jsonpatch=require(_0x8727('0x3'));var rp=require(_0x8727('0x4'));var moment=require('moment');var BPromise=require(_0x8727('0x5'));var Mustache=require(_0x8727('0x6'));var util=require(_0x8727('0x7'));var path=require(_0x8727('0x8'));var sox=require(_0x8727('0x9'));var csv=require(_0x8727('0xa'));var ejs=require(_0x8727('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8727('0xc'));var squel=require(_0x8727('0xd'));var crypto=require(_0x8727('0xe'));var jsforce=require(_0x8727('0xf'));var deskjs=require(_0x8727('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x8727('0x11'));var authService=require(_0x8727('0x12'));var qs=require(_0x8727('0x13'));var as=require(_0x8727('0x14'));var hardwareService=require(_0x8727('0x15'));var logger=require(_0x8727('0x16'))(_0x8727('0x17'));var utils=require(_0x8727('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x8727('0x19'));var db=require(_0x8727('0x1a'))['db'];function respondWithStatusCode(_0x176389,_0x518e56){_0x518e56=_0x518e56||0xcc;return function(_0x22d03d){if(_0x22d03d){return _0x176389[_0x8727('0x1b')](_0x518e56);}return _0x176389['status'](_0x518e56)[_0x8727('0x1c')]();};}function respondWithResult(_0x3aa1b,_0x47c29d){_0x47c29d=_0x47c29d||0xc8;return function(_0x2185e5){if(_0x2185e5){return _0x3aa1b[_0x8727('0x1d')](_0x47c29d)[_0x8727('0x1e')](_0x2185e5);}};}function respondWithFilteredResult(_0x3865e9,_0x1916f7){return function(_0x11c828){if(_0x11c828){var _0x88857c=typeof _0x1916f7['offset']===_0x8727('0x1f')&&typeof _0x1916f7[_0x8727('0x20')]===_0x8727('0x1f');var _0x2f6e1d=_0x11c828[_0x8727('0x21')];var _0xba0af5=_0x88857c?0x0:_0x1916f7['offset'];var _0x575d29=_0x88857c?_0x11c828[_0x8727('0x21')]:_0x1916f7['offset']+_0x1916f7[_0x8727('0x20')];var _0xfd266f;if(_0x575d29>=_0x2f6e1d){_0x575d29=_0x2f6e1d;_0xfd266f=0xc8;}else{_0xfd266f=0xce;}_0x3865e9[_0x8727('0x1d')](_0xfd266f);return _0x3865e9[_0x8727('0x22')](_0x8727('0x23'),_0xba0af5+'-'+_0x575d29+'/'+_0x2f6e1d)['json'](_0x11c828);}return null;};}function patchUpdates(_0x6e552f){return function(_0x286856){try{jsonpatch[_0x8727('0x24')](_0x286856,_0x6e552f,!![]);}catch(_0x1d78df){return BPromise[_0x8727('0x25')](_0x1d78df);}return _0x286856[_0x8727('0x26')]();};}function saveUpdates(_0x46d43e,_0x441cc0){return function(_0x117f58){if(_0x117f58){return _0x117f58[_0x8727('0x27')](_0x46d43e)[_0x8727('0x28')](function(_0x1a69d5){return _0x1a69d5;});}return null;};}function removeEntity(_0x4c699b,_0x464a32){return function(_0x3d3592){if(_0x3d3592){return _0x3d3592['destroy']()['then'](function(){var _0x3df7f2=_0x3d3592[_0x8727('0x29')]({'plain':!![]});var _0x15e8bf='Dispositions';return db[_0x8727('0x2a')][_0x8727('0x2b')]({'where':{'type':_0x15e8bf,'resourceId':_0x3df7f2['id']}})[_0x8727('0x28')](function(){return _0x3d3592;});})[_0x8727('0x28')](function(){_0x4c699b[_0x8727('0x1d')](0xcc)[_0x8727('0x1c')]();});}};}function handleEntityNotFound(_0x262f36,_0xd92f77){return function(_0x5d03f2){if(!_0x5d03f2){_0x262f36[_0x8727('0x1b')](0x194);}return _0x5d03f2;};}function handleError(_0x307055,_0x54034d){_0x54034d=_0x54034d||0x1f4;return function(_0x23325f){logger[_0x8727('0x2c')](_0x23325f[_0x8727('0x2d')]);if(_0x23325f[_0x8727('0x2e')]){delete _0x23325f[_0x8727('0x2e')];}_0x307055[_0x8727('0x1d')](_0x54034d)['send'](_0x23325f);};}exports[_0x8727('0x2f')]=function(_0x563201,_0x34c58e){var _0x47e9f9={},_0x44ed83={},_0x391d60={'count':0x0,'rows':[]};var _0x152a53=_[_0x8727('0x30')](db[_0x8727('0x31')][_0x8727('0x32')],function(_0x382be3){return{'name':_0x382be3['fieldName'],'type':_0x382be3[_0x8727('0x33')][_0x8727('0x34')]};});_0x44ed83[_0x8727('0x35')]=_[_0x8727('0x30')](_0x152a53,_0x8727('0x2e'));_0x44ed83[_0x8727('0x36')]=_[_0x8727('0x37')](_0x563201[_0x8727('0x36')]);_0x44ed83[_0x8727('0x38')]=_[_0x8727('0x39')](_0x44ed83[_0x8727('0x35')],_0x44ed83[_0x8727('0x36')]);_0x47e9f9['attributes']=_['intersection'](_0x44ed83[_0x8727('0x35')],qs[_0x8727('0x3a')](_0x563201[_0x8727('0x36')][_0x8727('0x3a')]));_0x47e9f9['attributes']=_0x47e9f9[_0x8727('0x3b')][_0x8727('0x3c')]?_0x47e9f9[_0x8727('0x3b')]:_0x44ed83[_0x8727('0x35')];if(!_0x563201[_0x8727('0x36')]['hasOwnProperty'](_0x8727('0x3d'))){_0x47e9f9[_0x8727('0x20')]=qs[_0x8727('0x20')](_0x563201[_0x8727('0x36')][_0x8727('0x20')]);_0x47e9f9[_0x8727('0x3e')]=qs[_0x8727('0x3e')](_0x563201[_0x8727('0x36')][_0x8727('0x3e')]);}_0x47e9f9[_0x8727('0x3f')]=qs[_0x8727('0x40')](_0x563201[_0x8727('0x36')]['sort']);_0x47e9f9[_0x8727('0x41')]=qs[_0x8727('0x38')](_[_0x8727('0x42')](_0x563201[_0x8727('0x36')],_0x44ed83[_0x8727('0x38')]),_0x152a53);if(_0x563201[_0x8727('0x36')][_0x8727('0x43')]){_0x47e9f9[_0x8727('0x41')]=_[_0x8727('0x44')](_0x47e9f9[_0x8727('0x41')],{'$or':_[_0x8727('0x30')](_0x152a53,function(_0x1f719e){if(_0x1f719e[_0x8727('0x33')]!==_0x8727('0x45')){var _0x4bb688={};_0x4bb688[_0x1f719e[_0x8727('0x2e')]]={'$like':'%'+_0x563201[_0x8727('0x36')][_0x8727('0x43')]+'%'};return _0x4bb688;}})});}_0x47e9f9=_['merge']({},_0x47e9f9,_0x563201[_0x8727('0x46')]);var _0x1a4563={'where':_0x47e9f9[_0x8727('0x41')]};return db[_0x8727('0x31')]['count'](_0x1a4563)[_0x8727('0x28')](function(_0x37e87c){_0x391d60[_0x8727('0x21')]=_0x37e87c;if(_0x563201[_0x8727('0x36')][_0x8727('0x47')]){_0x47e9f9[_0x8727('0x48')]=[{'all':!![]}];}return db[_0x8727('0x31')][_0x8727('0x49')](_0x47e9f9);})[_0x8727('0x28')](function(_0x2b5ba7){_0x391d60['rows']=_0x2b5ba7;return _0x391d60;})[_0x8727('0x28')](respondWithFilteredResult(_0x34c58e,_0x47e9f9))[_0x8727('0x4a')](handleError(_0x34c58e,null));};exports[_0x8727('0x4b')]=function(_0x338f43,_0x125de2){var _0x55aa6d={'raw':!![],'where':{'id':_0x338f43[_0x8727('0x4c')]['id']}},_0x161200={};_0x161200[_0x8727('0x35')]=_['keys'](db[_0x8727('0x31')][_0x8727('0x32')]);_0x161200[_0x8727('0x36')]=_[_0x8727('0x37')](_0x338f43[_0x8727('0x36')]);_0x161200[_0x8727('0x38')]=_['intersection'](_0x161200[_0x8727('0x35')],_0x161200[_0x8727('0x36')]);_0x55aa6d[_0x8727('0x3b')]=_['intersection'](_0x161200[_0x8727('0x35')],qs[_0x8727('0x3a')](_0x338f43[_0x8727('0x36')][_0x8727('0x3a')]));_0x55aa6d[_0x8727('0x3b')]=_0x55aa6d[_0x8727('0x3b')][_0x8727('0x3c')]?_0x55aa6d['attributes']:_0x161200[_0x8727('0x35')];if(_0x338f43[_0x8727('0x36')][_0x8727('0x47')]){_0x55aa6d[_0x8727('0x48')]=[{'all':!![]}];}_0x55aa6d=_[_0x8727('0x44')]({},_0x55aa6d,_0x338f43[_0x8727('0x46')]);return db[_0x8727('0x31')]['find'](_0x55aa6d)[_0x8727('0x28')](handleEntityNotFound(_0x125de2,null))[_0x8727('0x28')](respondWithResult(_0x125de2,null))[_0x8727('0x4a')](handleError(_0x125de2,null));};exports['create']=function(_0x30e656,_0x22cd31){return db[_0x8727('0x31')][_0x8727('0x4d')](_0x30e656[_0x8727('0x4e')],{})[_0x8727('0x28')](function(_0x417d4c){var _0x53f6c2=_0x30e656[_0x8727('0x4f')]['get']({'plain':!![]});if(!_0x53f6c2)throw new Error(_0x8727('0x50'));if(_0x53f6c2[_0x8727('0x51')]==='user'){var _0x133973=_0x417d4c[_0x8727('0x29')]({'plain':!![]});var _0xd86c46='Dispositions';return db['UserProfileSection'][_0x8727('0x52')]({'where':{'name':_0xd86c46,'userProfileId':_0x53f6c2[_0x8727('0x53')]},'raw':!![]})[_0x8727('0x28')](function(_0x527223){if(_0x527223&&_0x527223[_0x8727('0x54')]===0x0){return db[_0x8727('0x2a')][_0x8727('0x4d')]({'name':_0x133973[_0x8727('0x2e')],'resourceId':_0x133973['id'],'type':_0x527223[_0x8727('0x2e')],'sectionId':_0x527223['id']},{})[_0x8727('0x28')](function(){return _0x417d4c;});}else{return _0x417d4c;}})[_0x8727('0x4a')](function(_0x20ef63){logger['error'](_0x8727('0x55'),_0x20ef63);throw _0x20ef63;});}return _0x417d4c;})[_0x8727('0x28')](respondWithResult(_0x22cd31,0xc9))[_0x8727('0x4a')](handleError(_0x22cd31,null));};exports[_0x8727('0x27')]=function(_0x4a19a6,_0x35a086){if(_0x4a19a6[_0x8727('0x4e')]['id']){delete _0x4a19a6[_0x8727('0x4e')]['id'];}return db[_0x8727('0x31')][_0x8727('0x52')]({'where':{'id':_0x4a19a6[_0x8727('0x4c')]['id']}})[_0x8727('0x28')](handleEntityNotFound(_0x35a086,null))[_0x8727('0x28')](saveUpdates(_0x4a19a6['body'],null))[_0x8727('0x28')](respondWithResult(_0x35a086,null))[_0x8727('0x4a')](handleError(_0x35a086,null));};exports[_0x8727('0x2b')]=function(_0x47a9f0,_0x2b440d){return db['Disposition'][_0x8727('0x52')]({'where':{'id':_0x47a9f0['params']['id']}})[_0x8727('0x28')](handleEntityNotFound(_0x2b440d,null))[_0x8727('0x28')](removeEntity(_0x2b440d,null))['catch'](handleError(_0x2b440d,null));};