0d6ca867a6ea6c2d32ef0a5c08f5f218d2f6b0d0
[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 _0x493f=['show','keys','includeAll','include','find','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','squel','jsforce','to-csv','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','then','get','Dispositions','error','name','send','map','Disposition','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','findAll','rows','catch'];(function(_0x459b68,_0x2e3366){var _0x62ca91=function(_0x5e9931){while(--_0x5e9931){_0x459b68['push'](_0x459b68['shift']());}};_0x62ca91(++_0x2e3366);}(_0x493f,0xf8));var _0xf493=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0x493f[_0x19950b];return _0x3c6b41;};'use strict';var pdf=require(_0xf493('0x0'));var emlformat=require(_0xf493('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xf493('0x2'));var jsonpatch=require(_0xf493('0x3'));var rp=require(_0xf493('0x4'));var moment=require(_0xf493('0x5'));var BPromise=require(_0xf493('0x6'));var Mustache=require(_0xf493('0x7'));var util=require(_0xf493('0x8'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xf493('0x9'));var crypto=require('crypto');var jsforce=require(_0xf493('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xf493('0xb'));var querystring=require('querystring');var Papa=require(_0xf493('0xc'));var Redis=require(_0xf493('0xd'));var authService=require('../../components/auth/service');var qs=require(_0xf493('0xe'));var as=require(_0xf493('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xf493('0x10'))(_0xf493('0x11'));var utils=require(_0xf493('0x12'));var config=require(_0xf493('0x13'));var licenseUtil=require(_0xf493('0x14'));var db=require(_0xf493('0x15'))['db'];function respondWithStatusCode(_0x3d1124,_0x4dbfc4){_0x4dbfc4=_0x4dbfc4||0xcc;return function(_0x298f1b){if(_0x298f1b){return _0x3d1124[_0xf493('0x16')](_0x4dbfc4);}return _0x3d1124[_0xf493('0x17')](_0x4dbfc4)[_0xf493('0x18')]();};}function respondWithResult(_0x329768,_0x348531){_0x348531=_0x348531||0xc8;return function(_0x5221f5){if(_0x5221f5){return _0x329768[_0xf493('0x17')](_0x348531)['json'](_0x5221f5);}};}function respondWithFilteredResult(_0x3a032a,_0xc62717){return function(_0x9dce0c){if(_0x9dce0c){var _0x4a5348=_0x9dce0c[_0xf493('0x19')],_0x591a9e=_0xc62717[_0xf493('0x1a')],_0x45d3f5=_0xc62717[_0xf493('0x1a')]+_0xc62717[_0xf493('0x1b')],_0x213508;if(_0x45d3f5>=_0x4a5348){_0x45d3f5=_0x4a5348;_0x213508=0xc8;}else{_0x213508=0xce;}_0x3a032a[_0xf493('0x17')](_0x213508);return _0x3a032a[_0xf493('0x1c')](_0xf493('0x1d'),_0x591a9e+'-'+_0x45d3f5+'/'+_0x4a5348)['json'](_0x9dce0c);}return null;};}function patchUpdates(_0x3a97b3){return function(_0x3e83f1){try{jsonpatch[_0xf493('0x1e')](_0x3e83f1,_0x3a97b3,!![]);}catch(_0x92d1e4){return BPromise[_0xf493('0x1f')](_0x92d1e4);}return _0x3e83f1[_0xf493('0x20')]();};}function saveUpdates(_0x2a7cd1,_0x511d7c){return function(_0x2e203a){if(_0x2e203a){return _0x2e203a[_0xf493('0x21')](_0x2a7cd1)['then'](function(_0x2fad77){return _0x2fad77;});}return null;};}function removeEntity(_0x5e0274,_0x42ae4f){return function(_0x13128b){if(_0x13128b){return _0x13128b[_0xf493('0x22')]()[_0xf493('0x23')](function(){var _0x20e812=_0x13128b[_0xf493('0x24')]({'plain':!![]});var _0x425022=_0xf493('0x25');return db['UserProfileResource'][_0xf493('0x22')]({'where':{'type':_0x425022,'resourceId':_0x20e812['id']}})[_0xf493('0x23')](function(){return _0x13128b;});})[_0xf493('0x23')](function(){_0x5e0274[_0xf493('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4ed82d,_0x5f08f9){return function(_0x4d40c8){if(!_0x4d40c8){_0x4ed82d[_0xf493('0x16')](0x194);}return _0x4d40c8;};}function handleError(_0x137c0,_0x165dc3){_0x165dc3=_0x165dc3||0x1f4;return function(_0x1e766d){logger[_0xf493('0x26')](_0x1e766d['stack']);if(_0x1e766d['name']){delete _0x1e766d[_0xf493('0x27')];}_0x137c0['status'](_0x165dc3)[_0xf493('0x28')](_0x1e766d);};}exports['index']=function(_0x184eef,_0x2593ca){var _0x32c783={},_0x2c1aea={},_0x40845b={'count':0x0,'rows':[]};var _0x443472=_[_0xf493('0x29')](db[_0xf493('0x2a')][_0xf493('0x2b')],function(_0x45acfe){return{'name':_0x45acfe[_0xf493('0x2c')],'type':_0x45acfe[_0xf493('0x2d')]['key']};});_0x2c1aea[_0xf493('0x2e')]=_['map'](_0x443472,_0xf493('0x27'));_0x2c1aea[_0xf493('0x2f')]=_['keys'](_0x184eef[_0xf493('0x2f')]);_0x2c1aea[_0xf493('0x30')]=_[_0xf493('0x31')](_0x2c1aea[_0xf493('0x2e')],_0x2c1aea['query']);_0x32c783[_0xf493('0x32')]=_[_0xf493('0x31')](_0x2c1aea[_0xf493('0x2e')],qs['fields'](_0x184eef['query'][_0xf493('0x33')]));_0x32c783[_0xf493('0x32')]=_0x32c783[_0xf493('0x32')][_0xf493('0x34')]?_0x32c783[_0xf493('0x32')]:_0x2c1aea[_0xf493('0x2e')];if(!_0x184eef['query'][_0xf493('0x35')]('nolimit')){_0x32c783[_0xf493('0x1b')]=qs[_0xf493('0x1b')](_0x184eef[_0xf493('0x2f')][_0xf493('0x1b')]);_0x32c783['offset']=qs[_0xf493('0x1a')](_0x184eef[_0xf493('0x2f')]['offset']);}_0x32c783['order']=qs[_0xf493('0x36')](_0x184eef[_0xf493('0x2f')][_0xf493('0x36')]);_0x32c783[_0xf493('0x37')]=qs['filters'](_[_0xf493('0x38')](_0x184eef[_0xf493('0x2f')],_0x2c1aea[_0xf493('0x30')]),_0x443472);if(_0x184eef[_0xf493('0x2f')][_0xf493('0x39')]){_0x32c783[_0xf493('0x37')]=_[_0xf493('0x3a')](_0x32c783[_0xf493('0x37')],{'$or':_[_0xf493('0x29')](_0x443472,function(_0x436d33){if(_0x436d33[_0xf493('0x2d')]!==_0xf493('0x3b')){var _0x179c47={};_0x179c47[_0x436d33['name']]={'$like':'%'+_0x184eef[_0xf493('0x2f')]['filter']+'%'};return _0x179c47;}})});}_0x32c783=_[_0xf493('0x3a')]({},_0x32c783,_0x184eef[_0xf493('0x3c')]);var _0x52f646={'where':_0x32c783[_0xf493('0x37')]};return db['Disposition'][_0xf493('0x19')](_0x52f646)[_0xf493('0x23')](function(_0x49059f){_0x40845b[_0xf493('0x19')]=_0x49059f;if(_0x184eef[_0xf493('0x2f')]['includeAll']){_0x32c783['include']=[{'all':!![]}];}return db[_0xf493('0x2a')][_0xf493('0x3d')](_0x32c783);})[_0xf493('0x23')](function(_0x3ca552){_0x40845b[_0xf493('0x3e')]=_0x3ca552;return _0x40845b;})['then'](respondWithFilteredResult(_0x2593ca,_0x32c783))[_0xf493('0x3f')](handleError(_0x2593ca,null));};exports[_0xf493('0x40')]=function(_0x573070,_0x20d9d0){var _0x4717f7={'raw':!![],'where':{'id':_0x573070['params']['id']}},_0x3d428c={};_0x3d428c['model']=_['keys'](db[_0xf493('0x2a')][_0xf493('0x2b')]);_0x3d428c[_0xf493('0x2f')]=_[_0xf493('0x41')](_0x573070[_0xf493('0x2f')]);_0x3d428c[_0xf493('0x30')]=_['intersection'](_0x3d428c[_0xf493('0x2e')],_0x3d428c[_0xf493('0x2f')]);_0x4717f7[_0xf493('0x32')]=_[_0xf493('0x31')](_0x3d428c['model'],qs[_0xf493('0x33')](_0x573070[_0xf493('0x2f')][_0xf493('0x33')]));_0x4717f7[_0xf493('0x32')]=_0x4717f7[_0xf493('0x32')]['length']?_0x4717f7[_0xf493('0x32')]:_0x3d428c[_0xf493('0x2e')];if(_0x573070[_0xf493('0x2f')][_0xf493('0x42')]){_0x4717f7[_0xf493('0x43')]=[{'all':!![]}];}_0x4717f7=_['merge']({},_0x4717f7,_0x573070[_0xf493('0x3c')]);return db['Disposition'][_0xf493('0x44')](_0x4717f7)[_0xf493('0x23')](handleEntityNotFound(_0x20d9d0,null))[_0xf493('0x23')](respondWithResult(_0x20d9d0,null))[_0xf493('0x3f')](handleError(_0x20d9d0,null));};exports['create']=function(_0x4a865e,_0x478a9e){return db[_0xf493('0x2a')]['create'](_0x4a865e[_0xf493('0x45')],{})[_0xf493('0x23')](function(_0x43bf94){var _0x4cebb6=_0x4a865e['user'][_0xf493('0x24')]({'plain':!![]});if(!_0x4cebb6)throw new Error(_0xf493('0x46'));if(_0x4cebb6[_0xf493('0x47')]===_0xf493('0x48')){var _0x181520=_0x43bf94['get']({'plain':!![]});var _0x27c1a1=_0xf493('0x25');return db[_0xf493('0x49')][_0xf493('0x44')]({'where':{'name':_0x27c1a1,'userProfileId':_0x4cebb6[_0xf493('0x4a')]},'raw':!![]})[_0xf493('0x23')](function(_0x367aa6){if(_0x367aa6&&_0x367aa6['autoAssociation']===0x0){return db[_0xf493('0x4b')]['create']({'name':_0x181520[_0xf493('0x27')],'resourceId':_0x181520['id'],'type':_0x367aa6[_0xf493('0x27')],'sectionId':_0x367aa6['id']},{})[_0xf493('0x23')](function(){return _0x43bf94;});}else{return _0x43bf94;}})['catch'](function(_0x3db369){logger[_0xf493('0x26')](_0xf493('0x4c'),_0x3db369);throw _0x3db369;});}return _0x43bf94;})[_0xf493('0x23')](respondWithResult(_0x478a9e,0xc9))[_0xf493('0x3f')](handleError(_0x478a9e,null));};exports[_0xf493('0x21')]=function(_0x45b605,_0x41eb51){if(_0x45b605[_0xf493('0x45')]['id']){delete _0x45b605['body']['id'];}return db[_0xf493('0x2a')][_0xf493('0x44')]({'where':{'id':_0x45b605[_0xf493('0x4d')]['id']}})[_0xf493('0x23')](handleEntityNotFound(_0x41eb51,null))['then'](saveUpdates(_0x45b605[_0xf493('0x45')],null))['then'](respondWithResult(_0x41eb51,null))[_0xf493('0x3f')](handleError(_0x41eb51,null));};exports[_0xf493('0x22')]=function(_0x185d39,_0x1f533a){return db[_0xf493('0x2a')][_0xf493('0x44')]({'where':{'id':_0x185d39['params']['id']}})[_0xf493('0x23')](handleEntityNotFound(_0x1f533a,null))[_0xf493('0x23')](removeEntity(_0x1f533a,null))[_0xf493('0x3f')](handleError(_0x1f533a,null));};