6bead48f524dbc8e7241942b5a94ed43991a1c0f
[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 _0x2d6e=['util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','count','offset','limit','set','reject','save','update','then','destroy','error','stack','name','send','map','CloudProvider','rawAttributes','fieldName','type','model','intersection','query','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params','keys','include','find','create','body','rimraf','zip-dir','fast-json-patch','request-promise','bluebird'];(function(_0x4de271,_0x21977c){var _0x5071c9=function(_0x50bc92){while(--_0x50bc92){_0x4de271['push'](_0x4de271['shift']());}};_0x5071c9(++_0x21977c);}(_0x2d6e,0x163));var _0xe2d6=function(_0x4d7933,_0x3e362d){_0x4d7933=_0x4d7933-0x0;var _0x2879a3=_0x2d6e[_0x4d7933];return _0x2879a3;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xe2d6('0x0'));var zipdir=require(_0xe2d6('0x1'));var jsonpatch=require(_0xe2d6('0x2'));var rp=require(_0xe2d6('0x3'));var moment=require('moment');var BPromise=require(_0xe2d6('0x4'));var Mustache=require('mustache');var util=require(_0xe2d6('0x5'));var path=require(_0xe2d6('0x6'));var sox=require(_0xe2d6('0x7'));var csv=require(_0xe2d6('0x8'));var ejs=require(_0xe2d6('0x9'));var fs=require('fs');var _=require(_0xe2d6('0xa'));var squel=require('squel');var crypto=require(_0xe2d6('0xb'));var jsforce=require(_0xe2d6('0xc'));var deskjs=require(_0xe2d6('0xd'));var toCsv=require('to-csv');var querystring=require(_0xe2d6('0xe'));var Papa=require(_0xe2d6('0xf'));var Redis=require(_0xe2d6('0x10'));var authService=require(_0xe2d6('0x11'));var qs=require(_0xe2d6('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xe2d6('0x13'))(_0xe2d6('0x14'));var utils=require(_0xe2d6('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xe2d6('0x16'));var db=require(_0xe2d6('0x17'))['db'];function respondWithStatusCode(_0x23652a,_0x5cd000){_0x5cd000=_0x5cd000||0xcc;return function(_0x26edb5){if(_0x26edb5){return _0x23652a[_0xe2d6('0x18')](_0x5cd000);}return _0x23652a[_0xe2d6('0x19')](_0x5cd000)['end']();};}function respondWithResult(_0xbdfa0f,_0x5ae21d){_0x5ae21d=_0x5ae21d||0xc8;return function(_0x4a00ca){if(_0x4a00ca){return _0xbdfa0f[_0xe2d6('0x19')](_0x5ae21d)[_0xe2d6('0x1a')](_0x4a00ca);}};}function respondWithFilteredResult(_0x50978d,_0x140e02){return function(_0x25ca09){if(_0x25ca09){var _0x5dfb40=_0x25ca09[_0xe2d6('0x1b')],_0x32aec7=_0x140e02[_0xe2d6('0x1c')],_0x4461c3=_0x140e02[_0xe2d6('0x1c')]+_0x140e02[_0xe2d6('0x1d')],_0x276d90;if(_0x4461c3>=_0x5dfb40){_0x4461c3=_0x5dfb40;_0x276d90=0xc8;}else{_0x276d90=0xce;}_0x50978d[_0xe2d6('0x19')](_0x276d90);return _0x50978d[_0xe2d6('0x1e')]('Content-Range',_0x32aec7+'-'+_0x4461c3+'/'+_0x5dfb40)[_0xe2d6('0x1a')](_0x25ca09);}return null;};}function patchUpdates(_0x3db714){return function(_0x1b8cde){try{jsonpatch['apply'](_0x1b8cde,_0x3db714,!![]);}catch(_0x1b513e){return BPromise[_0xe2d6('0x1f')](_0x1b513e);}return _0x1b8cde[_0xe2d6('0x20')]();};}function saveUpdates(_0x1e1a87,_0x55f730){return function(_0x5e3e1d){if(_0x5e3e1d){return _0x5e3e1d[_0xe2d6('0x21')](_0x1e1a87)[_0xe2d6('0x22')](function(_0x50c2cb){return _0x50c2cb;});}return null;};}function removeEntity(_0x43b13d,_0x3820ce){return function(_0x1115e2){if(_0x1115e2){return _0x1115e2[_0xe2d6('0x23')]()[_0xe2d6('0x22')](function(){_0x43b13d[_0xe2d6('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1c2c39,_0x1543cd){return function(_0x39c49f){if(!_0x39c49f){_0x1c2c39['sendStatus'](0x194);}return _0x39c49f;};}function handleError(_0x5055f7,_0x541bbd){_0x541bbd=_0x541bbd||0x1f4;return function(_0x3fdc26){logger[_0xe2d6('0x24')](_0x3fdc26[_0xe2d6('0x25')]);if(_0x3fdc26[_0xe2d6('0x26')]){delete _0x3fdc26[_0xe2d6('0x26')];}_0x5055f7[_0xe2d6('0x19')](_0x541bbd)[_0xe2d6('0x27')](_0x3fdc26);};}exports['index']=function(_0x1129a5,_0x32360d){var _0x37a722={},_0x28a1b0={},_0x117859={'count':0x0,'rows':[]};var _0x59747b=_[_0xe2d6('0x28')](db[_0xe2d6('0x29')][_0xe2d6('0x2a')],function(_0x2a043f){return{'name':_0x2a043f[_0xe2d6('0x2b')],'type':_0x2a043f[_0xe2d6('0x2c')]['key']};});_0x28a1b0[_0xe2d6('0x2d')]=_['map'](_0x59747b,_0xe2d6('0x26'));_0x28a1b0['query']=_['keys'](_0x1129a5['query']);_0x28a1b0['filters']=_[_0xe2d6('0x2e')](_0x28a1b0['model'],_0x28a1b0[_0xe2d6('0x2f')]);_0x37a722['attributes']=_[_0xe2d6('0x2e')](_0x28a1b0[_0xe2d6('0x2d')],qs[_0xe2d6('0x30')](_0x1129a5[_0xe2d6('0x2f')][_0xe2d6('0x30')]));_0x37a722[_0xe2d6('0x31')]=_0x37a722[_0xe2d6('0x31')]['length']?_0x37a722[_0xe2d6('0x31')]:_0x28a1b0[_0xe2d6('0x2d')];if(!_0x1129a5['query'][_0xe2d6('0x32')](_0xe2d6('0x33'))){_0x37a722['limit']=qs[_0xe2d6('0x1d')](_0x1129a5[_0xe2d6('0x2f')]['limit']);_0x37a722[_0xe2d6('0x1c')]=qs[_0xe2d6('0x1c')](_0x1129a5[_0xe2d6('0x2f')][_0xe2d6('0x1c')]);}_0x37a722[_0xe2d6('0x34')]=qs[_0xe2d6('0x35')](_0x1129a5[_0xe2d6('0x2f')][_0xe2d6('0x35')]);_0x37a722[_0xe2d6('0x36')]=qs[_0xe2d6('0x37')](_[_0xe2d6('0x38')](_0x1129a5[_0xe2d6('0x2f')],_0x28a1b0[_0xe2d6('0x37')]),_0x59747b);if(_0x1129a5['query'][_0xe2d6('0x39')]){_0x37a722[_0xe2d6('0x36')]=_['merge'](_0x37a722['where'],{'$or':_[_0xe2d6('0x28')](_0x59747b,function(_0x47bef1){if(_0x47bef1[_0xe2d6('0x2c')]!==_0xe2d6('0x3a')){var _0x1774fd={};_0x1774fd[_0x47bef1[_0xe2d6('0x26')]]={'$like':'%'+_0x1129a5[_0xe2d6('0x2f')][_0xe2d6('0x39')]+'%'};return _0x1774fd;}})});}_0x37a722=_[_0xe2d6('0x3b')]({},_0x37a722,_0x1129a5[_0xe2d6('0x3c')]);var _0x101767={'where':_0x37a722[_0xe2d6('0x36')]};return db['CloudProvider'][_0xe2d6('0x1b')](_0x101767)[_0xe2d6('0x22')](function(_0x294882){_0x117859[_0xe2d6('0x1b')]=_0x294882;if(_0x1129a5[_0xe2d6('0x2f')][_0xe2d6('0x3d')]){_0x37a722['include']=[{'all':!![]}];}return db['CloudProvider'][_0xe2d6('0x3e')](_0x37a722);})[_0xe2d6('0x22')](function(_0x2df975){_0x117859[_0xe2d6('0x3f')]=_0x2df975;return _0x117859;})[_0xe2d6('0x22')](respondWithFilteredResult(_0x32360d,_0x37a722))[_0xe2d6('0x40')](handleError(_0x32360d,null));};exports[_0xe2d6('0x41')]=function(_0xefe9a2,_0x3d07a2){var _0x188b69={'raw':!![],'where':{'id':_0xefe9a2[_0xe2d6('0x42')]['id']}},_0x5fd4fa={};_0x5fd4fa[_0xe2d6('0x2d')]=_[_0xe2d6('0x43')](db[_0xe2d6('0x29')][_0xe2d6('0x2a')]);_0x5fd4fa[_0xe2d6('0x2f')]=_[_0xe2d6('0x43')](_0xefe9a2[_0xe2d6('0x2f')]);_0x5fd4fa[_0xe2d6('0x37')]=_[_0xe2d6('0x2e')](_0x5fd4fa[_0xe2d6('0x2d')],_0x5fd4fa['query']);_0x188b69[_0xe2d6('0x31')]=_[_0xe2d6('0x2e')](_0x5fd4fa[_0xe2d6('0x2d')],qs[_0xe2d6('0x30')](_0xefe9a2['query'][_0xe2d6('0x30')]));_0x188b69[_0xe2d6('0x31')]=_0x188b69[_0xe2d6('0x31')]['length']?_0x188b69[_0xe2d6('0x31')]:_0x5fd4fa[_0xe2d6('0x2d')];if(_0xefe9a2[_0xe2d6('0x2f')]['includeAll']){_0x188b69[_0xe2d6('0x44')]=[{'all':!![]}];}_0x188b69=_[_0xe2d6('0x3b')]({},_0x188b69,_0xefe9a2['options']);return db[_0xe2d6('0x29')][_0xe2d6('0x45')](_0x188b69)['then'](handleEntityNotFound(_0x3d07a2,null))[_0xe2d6('0x22')](respondWithResult(_0x3d07a2,null))[_0xe2d6('0x40')](handleError(_0x3d07a2,null));};exports[_0xe2d6('0x46')]=function(_0x242f61,_0x83709a){return db['CloudProvider'][_0xe2d6('0x46')](_0x242f61['body'],{})['then'](respondWithResult(_0x83709a,0xc9))[_0xe2d6('0x40')](handleError(_0x83709a,null));};exports[_0xe2d6('0x21')]=function(_0x1369ee,_0x50ab58){if(_0x1369ee[_0xe2d6('0x47')]['id']){delete _0x1369ee[_0xe2d6('0x47')]['id'];}return db[_0xe2d6('0x29')][_0xe2d6('0x45')]({'where':{'id':_0x1369ee[_0xe2d6('0x42')]['id']}})[_0xe2d6('0x22')](handleEntityNotFound(_0x50ab58,null))[_0xe2d6('0x22')](saveUpdates(_0x1369ee[_0xe2d6('0x47')],null))[_0xe2d6('0x22')](respondWithResult(_0x50ab58,null))['catch'](handleError(_0x50ab58,null));};exports[_0xe2d6('0x23')]=function(_0x5ab816,_0x14995d){return db[_0xe2d6('0x29')][_0xe2d6('0x45')]({'where':{'id':_0x5ab816[_0xe2d6('0x42')]['id']}})[_0xe2d6('0x22')](handleEntityNotFound(_0x14995d,null))['then'](removeEntity(_0x14995d,null))['catch'](handleError(_0x14995d,null));};