4487b62c9f887f8dc0be1f1e61a7cca28a1fcb26
[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 _0x0ab0=['to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','offset','limit','set','Content-Range','json','reject','save','update','then','destroy','error','name','send','map','CloudProvider','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','options','count','includeAll','findAll','rows','catch','show','create','body','find','params','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox'];(function(_0x38854e,_0x23cbc9){var _0x3f8415=function(_0x4e493e){while(--_0x4e493e){_0x38854e['push'](_0x38854e['shift']());}};_0x3f8415(++_0x23cbc9);}(_0x0ab0,0x1b2));var _0x00ab=function(_0x35c26e,_0x1583cc){_0x35c26e=_0x35c26e-0x0;var _0x364f03=_0x0ab0[_0x35c26e];return _0x364f03;};'use strict';var pdf=require(_0x00ab('0x0'));var emlformat=require(_0x00ab('0x1'));var rimraf=require(_0x00ab('0x2'));var zipdir=require(_0x00ab('0x3'));var jsonpatch=require(_0x00ab('0x4'));var rp=require(_0x00ab('0x5'));var moment=require(_0x00ab('0x6'));var BPromise=require(_0x00ab('0x7'));var Mustache=require('mustache');var util=require(_0x00ab('0x8'));var path=require('path');var sox=require(_0x00ab('0x9'));var csv=require(_0x00ab('0xa'));var ejs=require(_0x00ab('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0x00ab('0xc'));var crypto=require(_0x00ab('0xd'));var jsforce=require(_0x00ab('0xe'));var deskjs=require(_0x00ab('0xf'));var toCsv=require(_0x00ab('0xa'));var querystring=require(_0x00ab('0x10'));var Papa=require(_0x00ab('0x11'));var Redis=require(_0x00ab('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x00ab('0x13'));var as=require(_0x00ab('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x00ab('0x15'))(_0x00ab('0x16'));var utils=require(_0x00ab('0x17'));var config=require(_0x00ab('0x18'));var db=require(_0x00ab('0x19'))['db'];function respondWithStatusCode(_0x175b0d,_0x36d614){_0x36d614=_0x36d614||0xcc;return function(_0xea0337){if(_0xea0337){return _0x175b0d[_0x00ab('0x1a')](_0x36d614);}return _0x175b0d[_0x00ab('0x1b')](_0x36d614)[_0x00ab('0x1c')]();};}function respondWithResult(_0x18af44,_0x21ba7d){_0x21ba7d=_0x21ba7d||0xc8;return function(_0x49d8bf){if(_0x49d8bf){return _0x18af44['status'](_0x21ba7d)['json'](_0x49d8bf);}};}function respondWithFilteredResult(_0x23da96,_0x3ba818){return function(_0x3ad719){if(_0x3ad719){var _0x150dc8=_0x3ad719['count'],_0x4acbb4=_0x3ba818[_0x00ab('0x1d')],_0x5c521c=_0x3ba818[_0x00ab('0x1d')]+_0x3ba818[_0x00ab('0x1e')],_0x2ca145;if(_0x5c521c>=_0x150dc8){_0x5c521c=_0x150dc8;_0x2ca145=0xc8;}else{_0x2ca145=0xce;}_0x23da96[_0x00ab('0x1b')](_0x2ca145);return _0x23da96[_0x00ab('0x1f')](_0x00ab('0x20'),_0x4acbb4+'-'+_0x5c521c+'/'+_0x150dc8)[_0x00ab('0x21')](_0x3ad719);}return null;};}function patchUpdates(_0x47d1fd){return function(_0x3cc9a4){try{jsonpatch['apply'](_0x3cc9a4,_0x47d1fd,!![]);}catch(_0x2fa076){return BPromise[_0x00ab('0x22')](_0x2fa076);}return _0x3cc9a4[_0x00ab('0x23')]();};}function saveUpdates(_0x2bacd7,_0x3f392e){return function(_0x57b181){if(_0x57b181){return _0x57b181[_0x00ab('0x24')](_0x2bacd7)[_0x00ab('0x25')](function(_0xd2a692){return _0xd2a692;});}return null;};}function removeEntity(_0x1fd690,_0x3fe099){return function(_0x50d277){if(_0x50d277){return _0x50d277[_0x00ab('0x26')]()[_0x00ab('0x25')](function(){_0x1fd690[_0x00ab('0x1b')](0xcc)[_0x00ab('0x1c')]();});}};}function handleEntityNotFound(_0x3d0eb0,_0x445180){return function(_0x2c024a){if(!_0x2c024a){_0x3d0eb0[_0x00ab('0x1a')](0x194);}return _0x2c024a;};}function handleError(_0x1c5290,_0x5f6a25){_0x5f6a25=_0x5f6a25||0x1f4;return function(_0x3e88a9){logger[_0x00ab('0x27')](_0x3e88a9['stack']);if(_0x3e88a9[_0x00ab('0x28')]){delete _0x3e88a9[_0x00ab('0x28')];}_0x1c5290[_0x00ab('0x1b')](_0x5f6a25)[_0x00ab('0x29')](_0x3e88a9);};}exports['index']=function(_0x5b3b7d,_0x1a1560){var _0x56c1b5={},_0x159640={},_0x61e78e={'count':0x0,'rows':[]};var _0x1b6e7e=_[_0x00ab('0x2a')](db[_0x00ab('0x2b')][_0x00ab('0x2c')],function(_0x6e1202){return{'name':_0x6e1202['fieldName'],'type':_0x6e1202[_0x00ab('0x2d')][_0x00ab('0x2e')]};});_0x159640[_0x00ab('0x2f')]=_['map'](_0x1b6e7e,'name');_0x159640[_0x00ab('0x30')]=_[_0x00ab('0x31')](_0x5b3b7d['query']);_0x159640['filters']=_[_0x00ab('0x32')](_0x159640[_0x00ab('0x2f')],_0x159640[_0x00ab('0x30')]);_0x56c1b5[_0x00ab('0x33')]=_['intersection'](_0x159640[_0x00ab('0x2f')],qs[_0x00ab('0x34')](_0x5b3b7d[_0x00ab('0x30')]['fields']));_0x56c1b5[_0x00ab('0x33')]=_0x56c1b5['attributes'][_0x00ab('0x35')]?_0x56c1b5['attributes']:_0x159640['model'];if(!_0x5b3b7d[_0x00ab('0x30')][_0x00ab('0x36')](_0x00ab('0x37'))){_0x56c1b5[_0x00ab('0x1e')]=qs[_0x00ab('0x1e')](_0x5b3b7d['query'][_0x00ab('0x1e')]);_0x56c1b5[_0x00ab('0x1d')]=qs[_0x00ab('0x1d')](_0x5b3b7d['query'][_0x00ab('0x1d')]);}_0x56c1b5[_0x00ab('0x38')]=qs[_0x00ab('0x39')](_0x5b3b7d[_0x00ab('0x30')][_0x00ab('0x39')]);_0x56c1b5[_0x00ab('0x3a')]=qs[_0x00ab('0x3b')](_[_0x00ab('0x3c')](_0x5b3b7d[_0x00ab('0x30')],_0x159640[_0x00ab('0x3b')]),_0x1b6e7e);if(_0x5b3b7d[_0x00ab('0x30')]['filter']){_0x56c1b5[_0x00ab('0x3a')]=_[_0x00ab('0x3d')](_0x56c1b5[_0x00ab('0x3a')],{'$or':_[_0x00ab('0x2a')](_0x1b6e7e,function(_0x5e7fb5){if(_0x5e7fb5['type']!==_0x00ab('0x3e')){var _0xe25aa3={};_0xe25aa3[_0x5e7fb5['name']]={'$like':'%'+_0x5b3b7d['query']['filter']+'%'};return _0xe25aa3;}})});}_0x56c1b5=_[_0x00ab('0x3d')]({},_0x56c1b5,_0x5b3b7d[_0x00ab('0x3f')]);var _0x3289ef={'where':_0x56c1b5[_0x00ab('0x3a')]};return db[_0x00ab('0x2b')][_0x00ab('0x40')](_0x3289ef)['then'](function(_0x146ad7){_0x61e78e['count']=_0x146ad7;if(_0x5b3b7d['query'][_0x00ab('0x41')]){_0x56c1b5['include']=[{'all':!![]}];}return db['CloudProvider'][_0x00ab('0x42')](_0x56c1b5);})[_0x00ab('0x25')](function(_0x2b7586){_0x61e78e[_0x00ab('0x43')]=_0x2b7586;return _0x61e78e;})[_0x00ab('0x25')](respondWithFilteredResult(_0x1a1560,_0x56c1b5))[_0x00ab('0x44')](handleError(_0x1a1560,null));};exports[_0x00ab('0x45')]=function(_0x55c772,_0x17cb5e){var _0x51ec37={'raw':!![],'where':{'id':_0x55c772['params']['id']}},_0x3daacc={};_0x3daacc[_0x00ab('0x2f')]=_['keys'](db[_0x00ab('0x2b')][_0x00ab('0x2c')]);_0x3daacc[_0x00ab('0x30')]=_[_0x00ab('0x31')](_0x55c772['query']);_0x3daacc[_0x00ab('0x3b')]=_[_0x00ab('0x32')](_0x3daacc[_0x00ab('0x2f')],_0x3daacc[_0x00ab('0x30')]);_0x51ec37[_0x00ab('0x33')]=_['intersection'](_0x3daacc['model'],qs[_0x00ab('0x34')](_0x55c772[_0x00ab('0x30')]['fields']));_0x51ec37[_0x00ab('0x33')]=_0x51ec37[_0x00ab('0x33')][_0x00ab('0x35')]?_0x51ec37[_0x00ab('0x33')]:_0x3daacc[_0x00ab('0x2f')];if(_0x55c772[_0x00ab('0x30')][_0x00ab('0x41')]){_0x51ec37['include']=[{'all':!![]}];}_0x51ec37=_[_0x00ab('0x3d')]({},_0x51ec37,_0x55c772[_0x00ab('0x3f')]);return db['CloudProvider']['find'](_0x51ec37)['then'](handleEntityNotFound(_0x17cb5e,null))['then'](respondWithResult(_0x17cb5e,null))['catch'](handleError(_0x17cb5e,null));};exports['create']=function(_0x565085,_0xf0e426){return db[_0x00ab('0x2b')][_0x00ab('0x46')](_0x565085[_0x00ab('0x47')],{})[_0x00ab('0x25')](respondWithResult(_0xf0e426,0xc9))['catch'](handleError(_0xf0e426,null));};exports[_0x00ab('0x24')]=function(_0x200b85,_0x1331ef){if(_0x200b85[_0x00ab('0x47')]['id']){delete _0x200b85['body']['id'];}return db[_0x00ab('0x2b')][_0x00ab('0x48')]({'where':{'id':_0x200b85['params']['id']}})['then'](handleEntityNotFound(_0x1331ef,null))[_0x00ab('0x25')](saveUpdates(_0x200b85['body'],null))['then'](respondWithResult(_0x1331ef,null))[_0x00ab('0x44')](handleError(_0x1331ef,null));};exports[_0x00ab('0x26')]=function(_0x2ddcc1,_0x4a1e9d){return db[_0x00ab('0x2b')]['find']({'where':{'id':_0x2ddcc1[_0x00ab('0x49')]['id']}})[_0x00ab('0x25')](handleEntityNotFound(_0x4a1e9d,null))[_0x00ab('0x25')](removeEntity(_0x4a1e9d,null))[_0x00ab('0x44')](handleError(_0x4a1e9d,null));};