Built motion from commit 85328c08.|2.5.50
[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 _0x931f=['to-csv','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','count','limit','Content-Range','apply','reject','save','destroy','then','get','Dispositions','UserProfileResource','stack','name','index','map','Disposition','fieldName','type','key','keys','query','filters','attributes','intersection','model','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','merge','options','include','rows','show','params','rawAttributes','includeAll','find','catch','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','update','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','squel','crypto','jsforce','desk.js'];(function(_0x2ae2cd,_0xb42c96){var _0xc52725=function(_0x4dda00){while(--_0x4dda00){_0x2ae2cd['push'](_0x2ae2cd['shift']());}};_0xc52725(++_0xb42c96);}(_0x931f,0x139));var _0xf931=function(_0xba60f1,_0x3b111b){_0xba60f1=_0xba60f1-0x0;var _0x120520=_0x931f[_0xba60f1];return _0x120520;};'use strict';var emlformat=require(_0xf931('0x0'));var rimraf=require(_0xf931('0x1'));var zipdir=require(_0xf931('0x2'));var jsonpatch=require(_0xf931('0x3'));var rp=require(_0xf931('0x4'));var moment=require(_0xf931('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xf931('0x6'));var util=require(_0xf931('0x7'));var path=require(_0xf931('0x8'));var sox=require(_0xf931('0x9'));var csv=require('to-csv');var ejs=require(_0xf931('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xf931('0xb'));var crypto=require(_0xf931('0xc'));var jsforce=require(_0xf931('0xd'));var deskjs=require(_0xf931('0xe'));var toCsv=require(_0xf931('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xf931('0x10'));var authService=require(_0xf931('0x11'));var qs=require(_0xf931('0x12'));var as=require(_0xf931('0x13'));var hardwareService=require(_0xf931('0x14'));var logger=require(_0xf931('0x15'))(_0xf931('0x16'));var utils=require(_0xf931('0x17'));var config=require(_0xf931('0x18'));var licenseUtil=require(_0xf931('0x19'));var db=require(_0xf931('0x1a'))['db'];function respondWithStatusCode(_0x455661,_0xcb77a3){_0xcb77a3=_0xcb77a3||0xcc;return function(_0x309ab5){if(_0x309ab5){return _0x455661[_0xf931('0x1b')](_0xcb77a3);}return _0x455661[_0xf931('0x1c')](_0xcb77a3)[_0xf931('0x1d')]();};}function respondWithResult(_0x35c4af,_0x268df5){_0x268df5=_0x268df5||0xc8;return function(_0x295782){if(_0x295782){return _0x35c4af[_0xf931('0x1c')](_0x268df5)[_0xf931('0x1e')](_0x295782);}};}function respondWithFilteredResult(_0x2f4166,_0xa0d2b4){return function(_0x2cc860){if(_0x2cc860){var _0x402197=typeof _0xa0d2b4[_0xf931('0x1f')]==='undefined'&&typeof _0xa0d2b4['limit']==='undefined';var _0x1ebcd1=_0x2cc860[_0xf931('0x20')];var _0x48bec5=_0x402197?0x0:_0xa0d2b4['offset'];var _0x555404=_0x402197?_0x2cc860[_0xf931('0x20')]:_0xa0d2b4['offset']+_0xa0d2b4[_0xf931('0x21')];var _0x3db5b1;if(_0x555404>=_0x1ebcd1){_0x555404=_0x1ebcd1;_0x3db5b1=0xc8;}else{_0x3db5b1=0xce;}_0x2f4166[_0xf931('0x1c')](_0x3db5b1);return _0x2f4166['set'](_0xf931('0x22'),_0x48bec5+'-'+_0x555404+'/'+_0x1ebcd1)[_0xf931('0x1e')](_0x2cc860);}return null;};}function patchUpdates(_0x63d21b){return function(_0x51ed3b){try{jsonpatch[_0xf931('0x23')](_0x51ed3b,_0x63d21b,!![]);}catch(_0x467172){return BPromise[_0xf931('0x24')](_0x467172);}return _0x51ed3b[_0xf931('0x25')]();};}function saveUpdates(_0x42db47,_0x1d591a){return function(_0x25e8ba){if(_0x25e8ba){return _0x25e8ba['update'](_0x42db47)['then'](function(_0x3a880c){return _0x3a880c;});}return null;};}function removeEntity(_0x810d2d,_0x2e5d27){return function(_0x436579){if(_0x436579){return _0x436579[_0xf931('0x26')]()[_0xf931('0x27')](function(){var _0x2af110=_0x436579[_0xf931('0x28')]({'plain':!![]});var _0x4c7e47=_0xf931('0x29');return db[_0xf931('0x2a')][_0xf931('0x26')]({'where':{'type':_0x4c7e47,'resourceId':_0x2af110['id']}})['then'](function(){return _0x436579;});})[_0xf931('0x27')](function(){_0x810d2d[_0xf931('0x1c')](0xcc)[_0xf931('0x1d')]();});}};}function handleEntityNotFound(_0x527d2d,_0x5c784c){return function(_0x4909ad){if(!_0x4909ad){_0x527d2d['sendStatus'](0x194);}return _0x4909ad;};}function handleError(_0x67a58b,_0x59ba93){_0x59ba93=_0x59ba93||0x1f4;return function(_0x19535b){logger['error'](_0x19535b[_0xf931('0x2b')]);if(_0x19535b[_0xf931('0x2c')]){delete _0x19535b[_0xf931('0x2c')];}_0x67a58b[_0xf931('0x1c')](_0x59ba93)['send'](_0x19535b);};}exports[_0xf931('0x2d')]=function(_0xe417a0,_0x392b99){var _0x1c8069={},_0x5847c1={},_0x157218={'count':0x0,'rows':[]};var _0x126367=_[_0xf931('0x2e')](db[_0xf931('0x2f')]['rawAttributes'],function(_0x5bdf72){return{'name':_0x5bdf72[_0xf931('0x30')],'type':_0x5bdf72[_0xf931('0x31')][_0xf931('0x32')]};});_0x5847c1['model']=_[_0xf931('0x2e')](_0x126367,_0xf931('0x2c'));_0x5847c1['query']=_[_0xf931('0x33')](_0xe417a0[_0xf931('0x34')]);_0x5847c1[_0xf931('0x35')]=_['intersection'](_0x5847c1['model'],_0x5847c1[_0xf931('0x34')]);_0x1c8069[_0xf931('0x36')]=_[_0xf931('0x37')](_0x5847c1[_0xf931('0x38')],qs['fields'](_0xe417a0[_0xf931('0x34')][_0xf931('0x39')]));_0x1c8069[_0xf931('0x36')]=_0x1c8069[_0xf931('0x36')][_0xf931('0x3a')]?_0x1c8069[_0xf931('0x36')]:_0x5847c1[_0xf931('0x38')];if(!_0xe417a0[_0xf931('0x34')][_0xf931('0x3b')](_0xf931('0x3c'))){_0x1c8069[_0xf931('0x21')]=qs[_0xf931('0x21')](_0xe417a0[_0xf931('0x34')][_0xf931('0x21')]);_0x1c8069[_0xf931('0x1f')]=qs['offset'](_0xe417a0[_0xf931('0x34')][_0xf931('0x1f')]);}_0x1c8069[_0xf931('0x3d')]=qs['sort'](_0xe417a0[_0xf931('0x34')][_0xf931('0x3e')]);_0x1c8069[_0xf931('0x3f')]=qs[_0xf931('0x35')](_['pick'](_0xe417a0[_0xf931('0x34')],_0x5847c1[_0xf931('0x35')]),_0x126367);if(_0xe417a0[_0xf931('0x34')][_0xf931('0x40')]){_0x1c8069[_0xf931('0x3f')]=_['merge'](_0x1c8069[_0xf931('0x3f')],{'$or':_[_0xf931('0x2e')](_0x126367,function(_0xf1a2b7){if(_0xf1a2b7['type']!==_0xf931('0x41')){var _0x8f5fdb={};_0x8f5fdb[_0xf1a2b7[_0xf931('0x2c')]]={'$like':'%'+_0xe417a0[_0xf931('0x34')][_0xf931('0x40')]+'%'};return _0x8f5fdb;}})});}_0x1c8069=_[_0xf931('0x42')]({},_0x1c8069,_0xe417a0[_0xf931('0x43')]);var _0x217adf={'where':_0x1c8069[_0xf931('0x3f')]};return db[_0xf931('0x2f')]['count'](_0x217adf)['then'](function(_0x37a020){_0x157218[_0xf931('0x20')]=_0x37a020;if(_0xe417a0['query']['includeAll']){_0x1c8069[_0xf931('0x44')]=[{'all':!![]}];}return db[_0xf931('0x2f')]['findAll'](_0x1c8069);})[_0xf931('0x27')](function(_0xbccc58){_0x157218[_0xf931('0x45')]=_0xbccc58;return _0x157218;})[_0xf931('0x27')](respondWithFilteredResult(_0x392b99,_0x1c8069))['catch'](handleError(_0x392b99,null));};exports[_0xf931('0x46')]=function(_0x5dbb11,_0x19cf21){var _0x467ccb={'raw':!![],'where':{'id':_0x5dbb11[_0xf931('0x47')]['id']}},_0x1363a4={};_0x1363a4[_0xf931('0x38')]=_['keys'](db[_0xf931('0x2f')][_0xf931('0x48')]);_0x1363a4[_0xf931('0x34')]=_['keys'](_0x5dbb11['query']);_0x1363a4[_0xf931('0x35')]=_[_0xf931('0x37')](_0x1363a4[_0xf931('0x38')],_0x1363a4[_0xf931('0x34')]);_0x467ccb[_0xf931('0x36')]=_['intersection'](_0x1363a4[_0xf931('0x38')],qs[_0xf931('0x39')](_0x5dbb11[_0xf931('0x34')][_0xf931('0x39')]));_0x467ccb['attributes']=_0x467ccb['attributes']['length']?_0x467ccb[_0xf931('0x36')]:_0x1363a4['model'];if(_0x5dbb11[_0xf931('0x34')][_0xf931('0x49')]){_0x467ccb['include']=[{'all':!![]}];}_0x467ccb=_['merge']({},_0x467ccb,_0x5dbb11[_0xf931('0x43')]);return db[_0xf931('0x2f')][_0xf931('0x4a')](_0x467ccb)[_0xf931('0x27')](handleEntityNotFound(_0x19cf21,null))[_0xf931('0x27')](respondWithResult(_0x19cf21,null))[_0xf931('0x4b')](handleError(_0x19cf21,null));};exports[_0xf931('0x4c')]=function(_0x3944e4,_0x259cd8){return db[_0xf931('0x2f')][_0xf931('0x4c')](_0x3944e4[_0xf931('0x4d')],{})[_0xf931('0x27')](function(_0x24238a){var _0x511a01=_0x3944e4['user'][_0xf931('0x28')]({'plain':!![]});if(!_0x511a01)throw new Error(_0xf931('0x4e'));if(_0x511a01['role']===_0xf931('0x4f')){var _0x5ed484=_0x24238a[_0xf931('0x28')]({'plain':!![]});var _0x123f55=_0xf931('0x29');return db[_0xf931('0x50')]['find']({'where':{'name':_0x123f55,'userProfileId':_0x511a01['userProfileId']},'raw':!![]})[_0xf931('0x27')](function(_0x3658da){if(_0x3658da&&_0x3658da['autoAssociation']===0x0){return db[_0xf931('0x2a')][_0xf931('0x4c')]({'name':_0x5ed484['name'],'resourceId':_0x5ed484['id'],'type':_0x3658da[_0xf931('0x2c')],'sectionId':_0x3658da['id']},{})[_0xf931('0x27')](function(){return _0x24238a;});}else{return _0x24238a;}})[_0xf931('0x4b')](function(_0x49f10c){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x49f10c);throw _0x49f10c;});}return _0x24238a;})[_0xf931('0x27')](respondWithResult(_0x259cd8,0xc9))[_0xf931('0x4b')](handleError(_0x259cd8,null));};exports[_0xf931('0x51')]=function(_0x19170f,_0xc93222){if(_0x19170f[_0xf931('0x4d')]['id']){delete _0x19170f[_0xf931('0x4d')]['id'];}return db[_0xf931('0x2f')]['find']({'where':{'id':_0x19170f[_0xf931('0x47')]['id']}})[_0xf931('0x27')](handleEntityNotFound(_0xc93222,null))[_0xf931('0x27')](saveUpdates(_0x19170f[_0xf931('0x4d')],null))['then'](respondWithResult(_0xc93222,null))[_0xf931('0x4b')](handleError(_0xc93222,null));};exports['destroy']=function(_0x2f15b3,_0x4c4a0f){return db[_0xf931('0x2f')]['find']({'where':{'id':_0x2f15b3['params']['id']}})[_0xf931('0x27')](handleEntityNotFound(_0x4c4a0f,null))[_0xf931('0x27')](removeEntity(_0x4c4a0f,null))[_0xf931('0x4b')](handleError(_0x4c4a0f,null));};