901ec6ade428548902c2a7cbb07a357df5494c0b
[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 _0xdc0b=['crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','json','apply','reject','save','update','destroy','then','get','Dispositions','UserProfileResource','error','stack','name','send','map','Disposition','rawAttributes','fieldName','type','keys','query','filters','intersection','attributes','model','fields','length','order','sort','where','filter','VIRTUAL','merge','includeAll','catch','show','params','options','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel'];(function(_0x248874,_0x36d19f){var _0x2b7f6c=function(_0x588c7f){while(--_0x588c7f){_0x248874['push'](_0x248874['shift']());}};_0x2b7f6c(++_0x36d19f);}(_0xdc0b,0xe6));var _0xbdc0=function(_0xc7b656,_0x3983fc){_0xc7b656=_0xc7b656-0x0;var _0x45479e=_0xdc0b[_0xc7b656];return _0x45479e;};'use strict';var emlformat=require(_0xbdc0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xbdc0('0x1'));var jsonpatch=require(_0xbdc0('0x2'));var rp=require('request-promise');var moment=require(_0xbdc0('0x3'));var BPromise=require(_0xbdc0('0x4'));var Mustache=require(_0xbdc0('0x5'));var util=require('util');var path=require(_0xbdc0('0x6'));var sox=require(_0xbdc0('0x7'));var csv=require(_0xbdc0('0x8'));var ejs=require(_0xbdc0('0x9'));var fs=require('fs');var fs_extra=require(_0xbdc0('0xa'));var _=require(_0xbdc0('0xb'));var squel=require(_0xbdc0('0xc'));var crypto=require(_0xbdc0('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xbdc0('0xe'));var toCsv=require('to-csv');var querystring=require(_0xbdc0('0xf'));var Papa=require(_0xbdc0('0x10'));var Redis=require(_0xbdc0('0x11'));var authService=require(_0xbdc0('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xbdc0('0x13'));var hardwareService=require(_0xbdc0('0x14'));var logger=require(_0xbdc0('0x15'))(_0xbdc0('0x16'));var utils=require(_0xbdc0('0x17'));var config=require(_0xbdc0('0x18'));var licenseUtil=require(_0xbdc0('0x19'));var db=require(_0xbdc0('0x1a'))['db'];function respondWithStatusCode(_0x28f5ac,_0x3dfe79){_0x3dfe79=_0x3dfe79||0xcc;return function(_0x5f3aea){if(_0x5f3aea){return _0x28f5ac[_0xbdc0('0x1b')](_0x3dfe79);}return _0x28f5ac[_0xbdc0('0x1c')](_0x3dfe79)[_0xbdc0('0x1d')]();};}function respondWithResult(_0xf3cb,_0x5c290d){_0x5c290d=_0x5c290d||0xc8;return function(_0x425829){if(_0x425829){return _0xf3cb[_0xbdc0('0x1c')](_0x5c290d)['json'](_0x425829);}};}function respondWithFilteredResult(_0x1d14ba,_0x5e796a){return function(_0x3adac9){if(_0x3adac9){var _0x29a635=typeof _0x5e796a[_0xbdc0('0x1e')]==='undefined'&&typeof _0x5e796a[_0xbdc0('0x1f')]===_0xbdc0('0x20');var _0x168f14=_0x3adac9[_0xbdc0('0x21')];var _0x30c4f2=_0x29a635?0x0:_0x5e796a[_0xbdc0('0x1e')];var _0x31425b=_0x29a635?_0x3adac9[_0xbdc0('0x21')]:_0x5e796a['offset']+_0x5e796a['limit'];var _0x3b6336;if(_0x31425b>=_0x168f14){_0x31425b=_0x168f14;_0x3b6336=0xc8;}else{_0x3b6336=0xce;}_0x1d14ba['status'](_0x3b6336);return _0x1d14ba[_0xbdc0('0x22')](_0xbdc0('0x23'),_0x30c4f2+'-'+_0x31425b+'/'+_0x168f14)[_0xbdc0('0x24')](_0x3adac9);}return null;};}function patchUpdates(_0x21792a){return function(_0x482888){try{jsonpatch[_0xbdc0('0x25')](_0x482888,_0x21792a,!![]);}catch(_0x183006){return BPromise[_0xbdc0('0x26')](_0x183006);}return _0x482888[_0xbdc0('0x27')]();};}function saveUpdates(_0x194592,_0x41f5b1){return function(_0x4b8425){if(_0x4b8425){return _0x4b8425[_0xbdc0('0x28')](_0x194592)['then'](function(_0x2467ea){return _0x2467ea;});}return null;};}function removeEntity(_0x1553f4,_0x25098b){return function(_0x3a5c24){if(_0x3a5c24){return _0x3a5c24[_0xbdc0('0x29')]()[_0xbdc0('0x2a')](function(){var _0x3a5f8c=_0x3a5c24[_0xbdc0('0x2b')]({'plain':!![]});var _0x5190da=_0xbdc0('0x2c');return db[_0xbdc0('0x2d')][_0xbdc0('0x29')]({'where':{'type':_0x5190da,'resourceId':_0x3a5f8c['id']}})[_0xbdc0('0x2a')](function(){return _0x3a5c24;});})['then'](function(){_0x1553f4[_0xbdc0('0x1c')](0xcc)[_0xbdc0('0x1d')]();});}};}function handleEntityNotFound(_0x182629,_0x4677b2){return function(_0x55e282){if(!_0x55e282){_0x182629['sendStatus'](0x194);}return _0x55e282;};}function handleError(_0x348a71,_0x36a699){_0x36a699=_0x36a699||0x1f4;return function(_0x53de41){logger[_0xbdc0('0x2e')](_0x53de41[_0xbdc0('0x2f')]);if(_0x53de41['name']){delete _0x53de41[_0xbdc0('0x30')];}_0x348a71[_0xbdc0('0x1c')](_0x36a699)[_0xbdc0('0x31')](_0x53de41);};}exports['index']=function(_0x1e7840,_0x8d6368){var _0x2262ba={},_0x1c08cc={},_0x34434d={'count':0x0,'rows':[]};var _0x21e39f=_[_0xbdc0('0x32')](db[_0xbdc0('0x33')][_0xbdc0('0x34')],function(_0x52466a){return{'name':_0x52466a[_0xbdc0('0x35')],'type':_0x52466a[_0xbdc0('0x36')]['key']};});_0x1c08cc['model']=_[_0xbdc0('0x32')](_0x21e39f,_0xbdc0('0x30'));_0x1c08cc['query']=_[_0xbdc0('0x37')](_0x1e7840[_0xbdc0('0x38')]);_0x1c08cc[_0xbdc0('0x39')]=_[_0xbdc0('0x3a')](_0x1c08cc['model'],_0x1c08cc[_0xbdc0('0x38')]);_0x2262ba[_0xbdc0('0x3b')]=_['intersection'](_0x1c08cc[_0xbdc0('0x3c')],qs[_0xbdc0('0x3d')](_0x1e7840[_0xbdc0('0x38')]['fields']));_0x2262ba[_0xbdc0('0x3b')]=_0x2262ba[_0xbdc0('0x3b')][_0xbdc0('0x3e')]?_0x2262ba['attributes']:_0x1c08cc[_0xbdc0('0x3c')];if(!_0x1e7840[_0xbdc0('0x38')]['hasOwnProperty']('nolimit')){_0x2262ba[_0xbdc0('0x1f')]=qs[_0xbdc0('0x1f')](_0x1e7840[_0xbdc0('0x38')][_0xbdc0('0x1f')]);_0x2262ba[_0xbdc0('0x1e')]=qs[_0xbdc0('0x1e')](_0x1e7840['query'][_0xbdc0('0x1e')]);}_0x2262ba[_0xbdc0('0x3f')]=qs['sort'](_0x1e7840['query'][_0xbdc0('0x40')]);_0x2262ba[_0xbdc0('0x41')]=qs['filters'](_['pick'](_0x1e7840['query'],_0x1c08cc[_0xbdc0('0x39')]),_0x21e39f);if(_0x1e7840[_0xbdc0('0x38')][_0xbdc0('0x42')]){_0x2262ba[_0xbdc0('0x41')]=_['merge'](_0x2262ba[_0xbdc0('0x41')],{'$or':_[_0xbdc0('0x32')](_0x21e39f,function(_0x36e127){if(_0x36e127[_0xbdc0('0x36')]!==_0xbdc0('0x43')){var _0x150a69={};_0x150a69[_0x36e127[_0xbdc0('0x30')]]={'$like':'%'+_0x1e7840[_0xbdc0('0x38')]['filter']+'%'};return _0x150a69;}})});}_0x2262ba=_[_0xbdc0('0x44')]({},_0x2262ba,_0x1e7840['options']);var _0xd95816={'where':_0x2262ba[_0xbdc0('0x41')]};return db[_0xbdc0('0x33')][_0xbdc0('0x21')](_0xd95816)[_0xbdc0('0x2a')](function(_0x45a898){_0x34434d[_0xbdc0('0x21')]=_0x45a898;if(_0x1e7840[_0xbdc0('0x38')][_0xbdc0('0x45')]){_0x2262ba['include']=[{'all':!![]}];}return db[_0xbdc0('0x33')]['findAll'](_0x2262ba);})[_0xbdc0('0x2a')](function(_0x8410ec){_0x34434d['rows']=_0x8410ec;return _0x34434d;})[_0xbdc0('0x2a')](respondWithFilteredResult(_0x8d6368,_0x2262ba))[_0xbdc0('0x46')](handleError(_0x8d6368,null));};exports[_0xbdc0('0x47')]=function(_0x478404,_0x1d1f56){var _0x4e18d2={'raw':!![],'where':{'id':_0x478404[_0xbdc0('0x48')]['id']}},_0x4a066c={};_0x4a066c['model']=_['keys'](db[_0xbdc0('0x33')][_0xbdc0('0x34')]);_0x4a066c[_0xbdc0('0x38')]=_[_0xbdc0('0x37')](_0x478404[_0xbdc0('0x38')]);_0x4a066c[_0xbdc0('0x39')]=_[_0xbdc0('0x3a')](_0x4a066c['model'],_0x4a066c[_0xbdc0('0x38')]);_0x4e18d2['attributes']=_[_0xbdc0('0x3a')](_0x4a066c['model'],qs[_0xbdc0('0x3d')](_0x478404[_0xbdc0('0x38')][_0xbdc0('0x3d')]));_0x4e18d2[_0xbdc0('0x3b')]=_0x4e18d2[_0xbdc0('0x3b')][_0xbdc0('0x3e')]?_0x4e18d2[_0xbdc0('0x3b')]:_0x4a066c['model'];if(_0x478404['query'][_0xbdc0('0x45')]){_0x4e18d2['include']=[{'all':!![]}];}_0x4e18d2=_['merge']({},_0x4e18d2,_0x478404[_0xbdc0('0x49')]);return db['Disposition']['find'](_0x4e18d2)[_0xbdc0('0x2a')](handleEntityNotFound(_0x1d1f56,null))[_0xbdc0('0x2a')](respondWithResult(_0x1d1f56,null))[_0xbdc0('0x46')](handleError(_0x1d1f56,null));};exports[_0xbdc0('0x4a')]=function(_0x55896a,_0x4d1891){return db['Disposition']['create'](_0x55896a[_0xbdc0('0x4b')],{})['then'](function(_0x4f7fb7){var _0x43622d=_0x55896a['user']['get']({'plain':!![]});if(!_0x43622d)throw new Error(_0xbdc0('0x4c'));if(_0x43622d[_0xbdc0('0x4d')]==='user'){var _0x5124e0=_0x4f7fb7[_0xbdc0('0x2b')]({'plain':!![]});var _0x238fe2=_0xbdc0('0x2c');return db['UserProfileSection']['find']({'where':{'name':_0x238fe2,'userProfileId':_0x43622d['userProfileId']},'raw':!![]})[_0xbdc0('0x2a')](function(_0x15eb4b){if(_0x15eb4b&&_0x15eb4b[_0xbdc0('0x4e')]===0x0){return db['UserProfileResource'][_0xbdc0('0x4a')]({'name':_0x5124e0[_0xbdc0('0x30')],'resourceId':_0x5124e0['id'],'type':_0x15eb4b[_0xbdc0('0x30')],'sectionId':_0x15eb4b['id']},{})['then'](function(){return _0x4f7fb7;});}else{return _0x4f7fb7;}})[_0xbdc0('0x46')](function(_0x16e991){logger[_0xbdc0('0x2e')](_0xbdc0('0x4f'),_0x16e991);throw _0x16e991;});}return _0x4f7fb7;})[_0xbdc0('0x2a')](respondWithResult(_0x4d1891,0xc9))[_0xbdc0('0x46')](handleError(_0x4d1891,null));};exports['update']=function(_0x53c154,_0x18f695){if(_0x53c154[_0xbdc0('0x4b')]['id']){delete _0x53c154[_0xbdc0('0x4b')]['id'];}return db[_0xbdc0('0x33')][_0xbdc0('0x50')]({'where':{'id':_0x53c154[_0xbdc0('0x48')]['id']}})[_0xbdc0('0x2a')](handleEntityNotFound(_0x18f695,null))['then'](saveUpdates(_0x53c154[_0xbdc0('0x4b')],null))['then'](respondWithResult(_0x18f695,null))[_0xbdc0('0x46')](handleError(_0x18f695,null));};exports[_0xbdc0('0x29')]=function(_0x9aac15,_0x141bac){return db[_0xbdc0('0x33')][_0xbdc0('0x50')]({'where':{'id':_0x9aac15[_0xbdc0('0x48')]['id']}})[_0xbdc0('0x2a')](handleEntityNotFound(_0x141bac,null))['then'](removeEntity(_0x141bac,null))['catch'](handleError(_0x141bac,null));};