716b667c09e09a5023000859686b66913b42849e
[motion2.git] / server / api / cloudProvider / cloudProvider.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 _0x8a8b=['rawAttributes','key','model','query','keys','filters','intersection','fields','attributes','nolimit','order','sort','pick','filter','where','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','length','find','create','body','params','html-pdf','zip-dir','fast-json-patch','moment','mustache','path','sox','to-csv','lodash','crypto','desk.js','querystring','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','count','offset','limit','set','Content-Range','save','update','then','destroy','error','stack','name','index','map','CloudProvider'];(function(_0x345eed,_0x3901d8){var _0x571ee6=function(_0x492c50){while(--_0x492c50){_0x345eed['push'](_0x345eed['shift']());}};_0x571ee6(++_0x3901d8);}(_0x8a8b,0xae));var _0xb8a8=function(_0xb9d2bf,_0x27ce18){_0xb9d2bf=_0xb9d2bf-0x0;var _0x37150c=_0x8a8b[_0xb9d2bf];return _0x37150c;};'use strict';var pdf=require(_0xb8a8('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xb8a8('0x1'));var jsonpatch=require(_0xb8a8('0x2'));var rp=require('request-promise');var moment=require(_0xb8a8('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xb8a8('0x4'));var util=require('util');var path=require(_0xb8a8('0x5'));var sox=require(_0xb8a8('0x6'));var csv=require(_0xb8a8('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xb8a8('0x8'));var squel=require('squel');var crypto=require(_0xb8a8('0x9'));var jsforce=require('jsforce');var deskjs=require(_0xb8a8('0xa'));var toCsv=require(_0xb8a8('0x7'));var querystring=require(_0xb8a8('0xb'));var Papa=require('papaparse');var Redis=require(_0xb8a8('0xc'));var authService=require(_0xb8a8('0xd'));var qs=require(_0xb8a8('0xe'));var as=require(_0xb8a8('0xf'));var hardwareService=require(_0xb8a8('0x10'));var logger=require(_0xb8a8('0x11'))(_0xb8a8('0x12'));var utils=require(_0xb8a8('0x13'));var config=require(_0xb8a8('0x14'));var licenseUtil=require(_0xb8a8('0x15'));var db=require(_0xb8a8('0x16'))['db'];function respondWithStatusCode(_0x3ba314,_0x6e85aa){_0x6e85aa=_0x6e85aa||0xcc;return function(_0x5278f8){if(_0x5278f8){return _0x3ba314[_0xb8a8('0x17')](_0x6e85aa);}return _0x3ba314[_0xb8a8('0x18')](_0x6e85aa)[_0xb8a8('0x19')]();};}function respondWithResult(_0xad6499,_0x42fb99){_0x42fb99=_0x42fb99||0xc8;return function(_0xf3750e){if(_0xf3750e){return _0xad6499[_0xb8a8('0x18')](_0x42fb99)[_0xb8a8('0x1a')](_0xf3750e);}};}function respondWithFilteredResult(_0x22e0ac,_0x3d96dc){return function(_0x3ca02e){if(_0x3ca02e){var _0x4f6cd0=_0x3ca02e[_0xb8a8('0x1b')],_0x4664e3=_0x3d96dc[_0xb8a8('0x1c')],_0x591870=_0x3d96dc[_0xb8a8('0x1c')]+_0x3d96dc[_0xb8a8('0x1d')],_0x9bd9af;if(_0x591870>=_0x4f6cd0){_0x591870=_0x4f6cd0;_0x9bd9af=0xc8;}else{_0x9bd9af=0xce;}_0x22e0ac[_0xb8a8('0x18')](_0x9bd9af);return _0x22e0ac[_0xb8a8('0x1e')](_0xb8a8('0x1f'),_0x4664e3+'-'+_0x591870+'/'+_0x4f6cd0)['json'](_0x3ca02e);}return null;};}function patchUpdates(_0x480aec){return function(_0x306c20){try{jsonpatch['apply'](_0x306c20,_0x480aec,!![]);}catch(_0x51fbce){return BPromise['reject'](_0x51fbce);}return _0x306c20[_0xb8a8('0x20')]();};}function saveUpdates(_0x44cdee,_0x421b58){return function(_0xe68165){if(_0xe68165){return _0xe68165[_0xb8a8('0x21')](_0x44cdee)[_0xb8a8('0x22')](function(_0x5ecac7){return _0x5ecac7;});}return null;};}function removeEntity(_0x17c2b8,_0x9ca4b){return function(_0x1a3ff2){if(_0x1a3ff2){return _0x1a3ff2[_0xb8a8('0x23')]()['then'](function(){_0x17c2b8[_0xb8a8('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x32aba6,_0x4bc82a){return function(_0x2a29ef){if(!_0x2a29ef){_0x32aba6['sendStatus'](0x194);}return _0x2a29ef;};}function handleError(_0x4ede21,_0x495e6b){_0x495e6b=_0x495e6b||0x1f4;return function(_0x5dadd6){logger[_0xb8a8('0x24')](_0x5dadd6[_0xb8a8('0x25')]);if(_0x5dadd6[_0xb8a8('0x26')]){delete _0x5dadd6[_0xb8a8('0x26')];}_0x4ede21[_0xb8a8('0x18')](_0x495e6b)['send'](_0x5dadd6);};}exports[_0xb8a8('0x27')]=function(_0x9e1425,_0x465f0f){var _0x2d26fa={},_0x40878e={},_0x524708={'count':0x0,'rows':[]};var _0x26aff5=_[_0xb8a8('0x28')](db[_0xb8a8('0x29')][_0xb8a8('0x2a')],function(_0x47464e){return{'name':_0x47464e['fieldName'],'type':_0x47464e['type'][_0xb8a8('0x2b')]};});_0x40878e[_0xb8a8('0x2c')]=_[_0xb8a8('0x28')](_0x26aff5,_0xb8a8('0x26'));_0x40878e[_0xb8a8('0x2d')]=_[_0xb8a8('0x2e')](_0x9e1425[_0xb8a8('0x2d')]);_0x40878e[_0xb8a8('0x2f')]=_[_0xb8a8('0x30')](_0x40878e[_0xb8a8('0x2c')],_0x40878e['query']);_0x2d26fa['attributes']=_[_0xb8a8('0x30')](_0x40878e[_0xb8a8('0x2c')],qs[_0xb8a8('0x31')](_0x9e1425['query']['fields']));_0x2d26fa['attributes']=_0x2d26fa['attributes']['length']?_0x2d26fa[_0xb8a8('0x32')]:_0x40878e[_0xb8a8('0x2c')];if(!_0x9e1425[_0xb8a8('0x2d')]['hasOwnProperty'](_0xb8a8('0x33'))){_0x2d26fa[_0xb8a8('0x1d')]=qs[_0xb8a8('0x1d')](_0x9e1425[_0xb8a8('0x2d')][_0xb8a8('0x1d')]);_0x2d26fa[_0xb8a8('0x1c')]=qs['offset'](_0x9e1425[_0xb8a8('0x2d')][_0xb8a8('0x1c')]);}_0x2d26fa[_0xb8a8('0x34')]=qs[_0xb8a8('0x35')](_0x9e1425[_0xb8a8('0x2d')][_0xb8a8('0x35')]);_0x2d26fa['where']=qs['filters'](_[_0xb8a8('0x36')](_0x9e1425[_0xb8a8('0x2d')],_0x40878e[_0xb8a8('0x2f')]),_0x26aff5);if(_0x9e1425[_0xb8a8('0x2d')][_0xb8a8('0x37')]){_0x2d26fa[_0xb8a8('0x38')]=_[_0xb8a8('0x39')](_0x2d26fa['where'],{'$or':_[_0xb8a8('0x28')](_0x26aff5,function(_0x43c2d9){if(_0x43c2d9[_0xb8a8('0x3a')]!==_0xb8a8('0x3b')){var _0x2f2ab3={};_0x2f2ab3[_0x43c2d9[_0xb8a8('0x26')]]={'$like':'%'+_0x9e1425[_0xb8a8('0x2d')][_0xb8a8('0x37')]+'%'};return _0x2f2ab3;}})});}_0x2d26fa=_[_0xb8a8('0x39')]({},_0x2d26fa,_0x9e1425[_0xb8a8('0x3c')]);var _0x27b287={'where':_0x2d26fa[_0xb8a8('0x38')]};return db[_0xb8a8('0x29')][_0xb8a8('0x1b')](_0x27b287)['then'](function(_0x12a7c0){_0x524708[_0xb8a8('0x1b')]=_0x12a7c0;if(_0x9e1425[_0xb8a8('0x2d')][_0xb8a8('0x3d')]){_0x2d26fa[_0xb8a8('0x3e')]=[{'all':!![]}];}return db[_0xb8a8('0x29')][_0xb8a8('0x3f')](_0x2d26fa);})[_0xb8a8('0x22')](function(_0x4af0c2){_0x524708[_0xb8a8('0x40')]=_0x4af0c2;return _0x524708;})[_0xb8a8('0x22')](respondWithFilteredResult(_0x465f0f,_0x2d26fa))[_0xb8a8('0x41')](handleError(_0x465f0f,null));};exports[_0xb8a8('0x42')]=function(_0x54625c,_0x4eec73){var _0x28339b={'raw':!![],'where':{'id':_0x54625c['params']['id']}},_0x12f9dc={};_0x12f9dc[_0xb8a8('0x2c')]=_[_0xb8a8('0x2e')](db[_0xb8a8('0x29')]['rawAttributes']);_0x12f9dc[_0xb8a8('0x2d')]=_[_0xb8a8('0x2e')](_0x54625c[_0xb8a8('0x2d')]);_0x12f9dc[_0xb8a8('0x2f')]=_['intersection'](_0x12f9dc[_0xb8a8('0x2c')],_0x12f9dc['query']);_0x28339b[_0xb8a8('0x32')]=_['intersection'](_0x12f9dc[_0xb8a8('0x2c')],qs[_0xb8a8('0x31')](_0x54625c[_0xb8a8('0x2d')][_0xb8a8('0x31')]));_0x28339b[_0xb8a8('0x32')]=_0x28339b[_0xb8a8('0x32')][_0xb8a8('0x43')]?_0x28339b[_0xb8a8('0x32')]:_0x12f9dc[_0xb8a8('0x2c')];if(_0x54625c[_0xb8a8('0x2d')][_0xb8a8('0x3d')]){_0x28339b[_0xb8a8('0x3e')]=[{'all':!![]}];}_0x28339b=_[_0xb8a8('0x39')]({},_0x28339b,_0x54625c[_0xb8a8('0x3c')]);return db['CloudProvider'][_0xb8a8('0x44')](_0x28339b)['then'](handleEntityNotFound(_0x4eec73,null))[_0xb8a8('0x22')](respondWithResult(_0x4eec73,null))[_0xb8a8('0x41')](handleError(_0x4eec73,null));};exports[_0xb8a8('0x45')]=function(_0x2ab93f,_0x153e52){return db[_0xb8a8('0x29')][_0xb8a8('0x45')](_0x2ab93f['body'],{})[_0xb8a8('0x22')](respondWithResult(_0x153e52,0xc9))[_0xb8a8('0x41')](handleError(_0x153e52,null));};exports[_0xb8a8('0x21')]=function(_0x566bf8,_0xefdabe){if(_0x566bf8[_0xb8a8('0x46')]['id']){delete _0x566bf8['body']['id'];}return db['CloudProvider'][_0xb8a8('0x44')]({'where':{'id':_0x566bf8[_0xb8a8('0x47')]['id']}})[_0xb8a8('0x22')](handleEntityNotFound(_0xefdabe,null))['then'](saveUpdates(_0x566bf8[_0xb8a8('0x46')],null))[_0xb8a8('0x22')](respondWithResult(_0xefdabe,null))[_0xb8a8('0x41')](handleError(_0xefdabe,null));};exports[_0xb8a8('0x23')]=function(_0x55e069,_0xd8786f){return db[_0xb8a8('0x29')][_0xb8a8('0x44')]({'where':{'id':_0x55e069[_0xb8a8('0x47')]['id']}})['then'](handleEntityNotFound(_0xd8786f,null))[_0xb8a8('0x22')](removeEntity(_0xd8786f,null))[_0xb8a8('0x41')](handleError(_0xd8786f,null));};