Built motion from commit da617fac.|2.6.6
[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 _0x743d=['moment','mustache','path','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','get','Dispositions','stack','name','send','index','Disposition','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','zip-dir','fast-json-patch','request-promise'];(function(_0x1240aa,_0x8a97b8){var _0x749864=function(_0x58ec50){while(--_0x58ec50){_0x1240aa['push'](_0x1240aa['shift']());}};_0x749864(++_0x8a97b8);}(_0x743d,0xa1));var _0xd743=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x743d[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xd743('0x0'));var jsonpatch=require(_0xd743('0x1'));var rp=require(_0xd743('0x2'));var moment=require(_0xd743('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xd743('0x4'));var util=require('util');var path=require(_0xd743('0x5'));var sox=require('sox');var csv=require(_0xd743('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd743('0x7'));var squel=require(_0xd743('0x8'));var crypto=require(_0xd743('0x9'));var jsforce=require(_0xd743('0xa'));var deskjs=require(_0xd743('0xb'));var toCsv=require(_0xd743('0x6'));var querystring=require(_0xd743('0xc'));var Papa=require('papaparse');var Redis=require(_0xd743('0xd'));var authService=require(_0xd743('0xe'));var qs=require(_0xd743('0xf'));var as=require(_0xd743('0x10'));var hardwareService=require(_0xd743('0x11'));var logger=require(_0xd743('0x12'))(_0xd743('0x13'));var utils=require('../../config/utils');var config=require(_0xd743('0x14'));var licenseUtil=require(_0xd743('0x15'));var db=require(_0xd743('0x16'))['db'];function respondWithStatusCode(_0x3304d4,_0x31e24f){_0x31e24f=_0x31e24f||0xcc;return function(_0x277e4c){if(_0x277e4c){return _0x3304d4[_0xd743('0x17')](_0x31e24f);}return _0x3304d4[_0xd743('0x18')](_0x31e24f)[_0xd743('0x19')]();};}function respondWithResult(_0x153a12,_0x3d663c){_0x3d663c=_0x3d663c||0xc8;return function(_0x3b01a1){if(_0x3b01a1){return _0x153a12[_0xd743('0x18')](_0x3d663c)[_0xd743('0x1a')](_0x3b01a1);}};}function respondWithFilteredResult(_0x4a82f1,_0x37c5b3){return function(_0x1876e7){if(_0x1876e7){var _0x579f43=typeof _0x37c5b3['offset']===_0xd743('0x1b')&&typeof _0x37c5b3[_0xd743('0x1c')]===_0xd743('0x1b');var _0x2443e0=_0x1876e7[_0xd743('0x1d')];var _0x33722d=_0x579f43?0x0:_0x37c5b3[_0xd743('0x1e')];var _0x1bf247=_0x579f43?_0x1876e7[_0xd743('0x1d')]:_0x37c5b3[_0xd743('0x1e')]+_0x37c5b3[_0xd743('0x1c')];var _0x50aa93;if(_0x1bf247>=_0x2443e0){_0x1bf247=_0x2443e0;_0x50aa93=0xc8;}else{_0x50aa93=0xce;}_0x4a82f1[_0xd743('0x18')](_0x50aa93);return _0x4a82f1[_0xd743('0x1f')](_0xd743('0x20'),_0x33722d+'-'+_0x1bf247+'/'+_0x2443e0)[_0xd743('0x1a')](_0x1876e7);}return null;};}function patchUpdates(_0x2fe8e8){return function(_0x2c5a66){try{jsonpatch[_0xd743('0x21')](_0x2c5a66,_0x2fe8e8,!![]);}catch(_0x1db056){return BPromise[_0xd743('0x22')](_0x1db056);}return _0x2c5a66[_0xd743('0x23')]();};}function saveUpdates(_0x3a8503,_0x27c293){return function(_0x4e654f){if(_0x4e654f){return _0x4e654f[_0xd743('0x24')](_0x3a8503)[_0xd743('0x25')](function(_0x3e531c){return _0x3e531c;});}return null;};}function removeEntity(_0xc1a9a4,_0x28e8e0){return function(_0x3b4bab){if(_0x3b4bab){return _0x3b4bab[_0xd743('0x26')]()['then'](function(){var _0x45a7ed=_0x3b4bab[_0xd743('0x27')]({'plain':!![]});var _0xe64536=_0xd743('0x28');return db['UserProfileResource']['destroy']({'where':{'type':_0xe64536,'resourceId':_0x45a7ed['id']}})['then'](function(){return _0x3b4bab;});})['then'](function(){_0xc1a9a4['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2f9ee7,_0x3a1a6d){return function(_0x41b42a){if(!_0x41b42a){_0x2f9ee7[_0xd743('0x17')](0x194);}return _0x41b42a;};}function handleError(_0x5a95d2,_0x310172){_0x310172=_0x310172||0x1f4;return function(_0x59f174){logger['error'](_0x59f174[_0xd743('0x29')]);if(_0x59f174[_0xd743('0x2a')]){delete _0x59f174[_0xd743('0x2a')];}_0x5a95d2[_0xd743('0x18')](_0x310172)[_0xd743('0x2b')](_0x59f174);};}exports[_0xd743('0x2c')]=function(_0x2139eb,_0x64c55){var _0x27c865={},_0x932fbc={},_0x33e4e6={'count':0x0,'rows':[]};var _0x35cce9=_['map'](db[_0xd743('0x2d')][_0xd743('0x2e')],function(_0x5d077d){return{'name':_0x5d077d[_0xd743('0x2f')],'type':_0x5d077d[_0xd743('0x30')][_0xd743('0x31')]};});_0x932fbc[_0xd743('0x32')]=_[_0xd743('0x33')](_0x35cce9,_0xd743('0x2a'));_0x932fbc[_0xd743('0x34')]=_[_0xd743('0x35')](_0x2139eb['query']);_0x932fbc[_0xd743('0x36')]=_[_0xd743('0x37')](_0x932fbc[_0xd743('0x32')],_0x932fbc[_0xd743('0x34')]);_0x27c865[_0xd743('0x38')]=_[_0xd743('0x37')](_0x932fbc[_0xd743('0x32')],qs[_0xd743('0x39')](_0x2139eb[_0xd743('0x34')][_0xd743('0x39')]));_0x27c865[_0xd743('0x38')]=_0x27c865[_0xd743('0x38')][_0xd743('0x3a')]?_0x27c865[_0xd743('0x38')]:_0x932fbc[_0xd743('0x32')];if(!_0x2139eb[_0xd743('0x34')][_0xd743('0x3b')]('nolimit')){_0x27c865[_0xd743('0x1c')]=qs[_0xd743('0x1c')](_0x2139eb[_0xd743('0x34')]['limit']);_0x27c865['offset']=qs['offset'](_0x2139eb[_0xd743('0x34')]['offset']);}_0x27c865[_0xd743('0x3c')]=qs[_0xd743('0x3d')](_0x2139eb[_0xd743('0x34')][_0xd743('0x3d')]);_0x27c865[_0xd743('0x3e')]=qs[_0xd743('0x36')](_[_0xd743('0x3f')](_0x2139eb[_0xd743('0x34')],_0x932fbc[_0xd743('0x36')]),_0x35cce9);if(_0x2139eb[_0xd743('0x34')][_0xd743('0x40')]){_0x27c865[_0xd743('0x3e')]=_[_0xd743('0x41')](_0x27c865[_0xd743('0x3e')],{'$or':_[_0xd743('0x33')](_0x35cce9,function(_0x50a4be){if(_0x50a4be[_0xd743('0x30')]!==_0xd743('0x42')){var _0x1c2bfb={};_0x1c2bfb[_0x50a4be[_0xd743('0x2a')]]={'$like':'%'+_0x2139eb[_0xd743('0x34')][_0xd743('0x40')]+'%'};return _0x1c2bfb;}})});}_0x27c865=_[_0xd743('0x41')]({},_0x27c865,_0x2139eb[_0xd743('0x43')]);var _0x1dfbe6={'where':_0x27c865[_0xd743('0x3e')]};return db[_0xd743('0x2d')][_0xd743('0x1d')](_0x1dfbe6)[_0xd743('0x25')](function(_0x58cbad){_0x33e4e6[_0xd743('0x1d')]=_0x58cbad;if(_0x2139eb['query'][_0xd743('0x44')]){_0x27c865[_0xd743('0x45')]=[{'all':!![]}];}return db[_0xd743('0x2d')][_0xd743('0x46')](_0x27c865);})[_0xd743('0x25')](function(_0x815cec){_0x33e4e6[_0xd743('0x47')]=_0x815cec;return _0x33e4e6;})[_0xd743('0x25')](respondWithFilteredResult(_0x64c55,_0x27c865))[_0xd743('0x48')](handleError(_0x64c55,null));};exports['show']=function(_0x232774,_0x58c60e){var _0x456a5c={'raw':!![],'where':{'id':_0x232774[_0xd743('0x49')]['id']}},_0x3462d9={};_0x3462d9[_0xd743('0x32')]=_['keys'](db[_0xd743('0x2d')][_0xd743('0x2e')]);_0x3462d9['query']=_[_0xd743('0x35')](_0x232774[_0xd743('0x34')]);_0x3462d9['filters']=_[_0xd743('0x37')](_0x3462d9[_0xd743('0x32')],_0x3462d9['query']);_0x456a5c['attributes']=_[_0xd743('0x37')](_0x3462d9[_0xd743('0x32')],qs['fields'](_0x232774[_0xd743('0x34')]['fields']));_0x456a5c['attributes']=_0x456a5c[_0xd743('0x38')][_0xd743('0x3a')]?_0x456a5c['attributes']:_0x3462d9['model'];if(_0x232774[_0xd743('0x34')]['includeAll']){_0x456a5c[_0xd743('0x45')]=[{'all':!![]}];}_0x456a5c=_[_0xd743('0x41')]({},_0x456a5c,_0x232774[_0xd743('0x43')]);return db[_0xd743('0x2d')][_0xd743('0x4a')](_0x456a5c)[_0xd743('0x25')](handleEntityNotFound(_0x58c60e,null))[_0xd743('0x25')](respondWithResult(_0x58c60e,null))[_0xd743('0x48')](handleError(_0x58c60e,null));};exports['create']=function(_0x4081f6,_0x5bc637){return db['Disposition'][_0xd743('0x4b')](_0x4081f6[_0xd743('0x4c')],{})['then'](function(_0x60d5da){var _0x1d948a=_0x4081f6['user'][_0xd743('0x27')]({'plain':!![]});if(!_0x1d948a)throw new Error(_0xd743('0x4d'));if(_0x1d948a['role']===_0xd743('0x4e')){var _0x50d580=_0x60d5da['get']({'plain':!![]});var _0xd53244=_0xd743('0x28');return db[_0xd743('0x4f')][_0xd743('0x4a')]({'where':{'name':_0xd53244,'userProfileId':_0x1d948a['userProfileId']},'raw':!![]})[_0xd743('0x25')](function(_0x2da198){if(_0x2da198&&_0x2da198[_0xd743('0x50')]===0x0){return db['UserProfileResource'][_0xd743('0x4b')]({'name':_0x50d580['name'],'resourceId':_0x50d580['id'],'type':_0x2da198[_0xd743('0x2a')],'sectionId':_0x2da198['id']},{})[_0xd743('0x25')](function(){return _0x60d5da;});}else{return _0x60d5da;}})[_0xd743('0x48')](function(_0x1fd6aa){logger['error'](_0xd743('0x51'),_0x1fd6aa);throw _0x1fd6aa;});}return _0x60d5da;})['then'](respondWithResult(_0x5bc637,0xc9))[_0xd743('0x48')](handleError(_0x5bc637,null));};exports['update']=function(_0x10ba31,_0xba0fe0){if(_0x10ba31['body']['id']){delete _0x10ba31['body']['id'];}return db[_0xd743('0x2d')][_0xd743('0x4a')]({'where':{'id':_0x10ba31[_0xd743('0x49')]['id']}})[_0xd743('0x25')](handleEntityNotFound(_0xba0fe0,null))[_0xd743('0x25')](saveUpdates(_0x10ba31['body'],null))[_0xd743('0x25')](respondWithResult(_0xba0fe0,null))[_0xd743('0x48')](handleError(_0xba0fe0,null));};exports['destroy']=function(_0x5ad386,_0x3d2b9f){return db['Disposition'][_0xd743('0x4a')]({'where':{'id':_0x5ad386[_0xd743('0x49')]['id']}})[_0xd743('0x25')](handleEntityNotFound(_0x3d2b9f,null))[_0xd743('0x25')](removeEntity(_0x3d2b9f,null))[_0xd743('0x48')](handleError(_0x3d2b9f,null));};