d5ab054f650c5c2e921f6b34d1f6a51edcbc709b
[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 _0x054b=['api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','count','offset','limit','Content-Range','json','save','update','then','destroy','end','error','stack','send','index','CloudProvider','rawAttributes','fieldName','type','key','model','map','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','params','find','create','body','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger'];(function(_0x337f9b,_0x1552fd){var _0xffe2b2=function(_0x29c853){while(--_0x29c853){_0x337f9b['push'](_0x337f9b['shift']());}};_0xffe2b2(++_0x1552fd);}(_0x054b,0x11c));var _0xb054=function(_0x6746a2,_0x2d6ea2){_0x6746a2=_0x6746a2-0x0;var _0x1e1044=_0x054b[_0x6746a2];return _0x1e1044;};'use strict';var pdf=require(_0xb054('0x0'));var emlformat=require(_0xb054('0x1'));var rimraf=require(_0xb054('0x2'));var zipdir=require(_0xb054('0x3'));var jsonpatch=require(_0xb054('0x4'));var rp=require(_0xb054('0x5'));var moment=require(_0xb054('0x6'));var BPromise=require(_0xb054('0x7'));var Mustache=require('mustache');var util=require(_0xb054('0x8'));var path=require(_0xb054('0x9'));var sox=require(_0xb054('0xa'));var csv=require(_0xb054('0xb'));var ejs=require(_0xb054('0xc'));var fs=require('fs');var _=require(_0xb054('0xd'));var squel=require(_0xb054('0xe'));var crypto=require('crypto');var jsforce=require(_0xb054('0xf'));var deskjs=require(_0xb054('0x10'));var toCsv=require(_0xb054('0xb'));var querystring=require(_0xb054('0x11'));var Papa=require(_0xb054('0x12'));var Redis=require('ioredis');var authService=require(_0xb054('0x13'));var qs=require(_0xb054('0x14'));var as=require(_0xb054('0x15'));var hardwareService=require(_0xb054('0x16'));var logger=require(_0xb054('0x17'))(_0xb054('0x18'));var utils=require(_0xb054('0x19'));var config=require(_0xb054('0x1a'));var licenseUtil=require(_0xb054('0x1b'));var db=require(_0xb054('0x1c'))['db'];function respondWithStatusCode(_0x2e00b6,_0x1d2199){_0x1d2199=_0x1d2199||0xcc;return function(_0x2f81b1){if(_0x2f81b1){return _0x2e00b6[_0xb054('0x1d')](_0x1d2199);}return _0x2e00b6[_0xb054('0x1e')](_0x1d2199)['end']();};}function respondWithResult(_0x358770,_0x26ace6){_0x26ace6=_0x26ace6||0xc8;return function(_0x3981ae){if(_0x3981ae){return _0x358770[_0xb054('0x1e')](_0x26ace6)['json'](_0x3981ae);}};}function respondWithFilteredResult(_0x332519,_0x41927a){return function(_0x14a4ae){if(_0x14a4ae){var _0x3683dd=_0x14a4ae[_0xb054('0x1f')],_0x3fda6d=_0x41927a[_0xb054('0x20')],_0xcd8a02=_0x41927a[_0xb054('0x20')]+_0x41927a[_0xb054('0x21')],_0x4addd5;if(_0xcd8a02>=_0x3683dd){_0xcd8a02=_0x3683dd;_0x4addd5=0xc8;}else{_0x4addd5=0xce;}_0x332519[_0xb054('0x1e')](_0x4addd5);return _0x332519['set'](_0xb054('0x22'),_0x3fda6d+'-'+_0xcd8a02+'/'+_0x3683dd)[_0xb054('0x23')](_0x14a4ae);}return null;};}function patchUpdates(_0x58391c){return function(_0x39ad7f){try{jsonpatch['apply'](_0x39ad7f,_0x58391c,!![]);}catch(_0x289f35){return BPromise['reject'](_0x289f35);}return _0x39ad7f[_0xb054('0x24')]();};}function saveUpdates(_0x6047d4,_0x15f69d){return function(_0x315246){if(_0x315246){return _0x315246[_0xb054('0x25')](_0x6047d4)[_0xb054('0x26')](function(_0x5b5b8a){return _0x5b5b8a;});}return null;};}function removeEntity(_0x18da17,_0x76a3ba){return function(_0x3f8ece){if(_0x3f8ece){return _0x3f8ece[_0xb054('0x27')]()[_0xb054('0x26')](function(){_0x18da17[_0xb054('0x1e')](0xcc)[_0xb054('0x28')]();});}};}function handleEntityNotFound(_0x46a478,_0xdb6795){return function(_0x20fe94){if(!_0x20fe94){_0x46a478[_0xb054('0x1d')](0x194);}return _0x20fe94;};}function handleError(_0xea8943,_0x588821){_0x588821=_0x588821||0x1f4;return function(_0x2a0d51){logger[_0xb054('0x29')](_0x2a0d51[_0xb054('0x2a')]);if(_0x2a0d51['name']){delete _0x2a0d51['name'];}_0xea8943[_0xb054('0x1e')](_0x588821)[_0xb054('0x2b')](_0x2a0d51);};}exports[_0xb054('0x2c')]=function(_0x361a82,_0x4c2ca9){var _0x13d3d8={},_0x376551={},_0x162d4b={'count':0x0,'rows':[]};var _0x4630fd=_['map'](db[_0xb054('0x2d')][_0xb054('0x2e')],function(_0x59b92c){return{'name':_0x59b92c[_0xb054('0x2f')],'type':_0x59b92c[_0xb054('0x30')][_0xb054('0x31')]};});_0x376551[_0xb054('0x32')]=_[_0xb054('0x33')](_0x4630fd,'name');_0x376551['query']=_[_0xb054('0x34')](_0x361a82['query']);_0x376551[_0xb054('0x35')]=_[_0xb054('0x36')](_0x376551[_0xb054('0x32')],_0x376551[_0xb054('0x37')]);_0x13d3d8[_0xb054('0x38')]=_['intersection'](_0x376551[_0xb054('0x32')],qs['fields'](_0x361a82[_0xb054('0x37')][_0xb054('0x39')]));_0x13d3d8['attributes']=_0x13d3d8[_0xb054('0x38')][_0xb054('0x3a')]?_0x13d3d8[_0xb054('0x38')]:_0x376551[_0xb054('0x32')];if(!_0x361a82[_0xb054('0x37')][_0xb054('0x3b')]('nolimit')){_0x13d3d8['limit']=qs[_0xb054('0x21')](_0x361a82[_0xb054('0x37')][_0xb054('0x21')]);_0x13d3d8[_0xb054('0x20')]=qs[_0xb054('0x20')](_0x361a82[_0xb054('0x37')][_0xb054('0x20')]);}_0x13d3d8[_0xb054('0x3c')]=qs[_0xb054('0x3d')](_0x361a82[_0xb054('0x37')][_0xb054('0x3d')]);_0x13d3d8[_0xb054('0x3e')]=qs[_0xb054('0x35')](_[_0xb054('0x3f')](_0x361a82[_0xb054('0x37')],_0x376551['filters']),_0x4630fd);if(_0x361a82[_0xb054('0x37')][_0xb054('0x40')]){_0x13d3d8[_0xb054('0x3e')]=_[_0xb054('0x41')](_0x13d3d8[_0xb054('0x3e')],{'$or':_[_0xb054('0x33')](_0x4630fd,function(_0x995eef){if(_0x995eef[_0xb054('0x30')]!==_0xb054('0x42')){var _0x353724={};_0x353724[_0x995eef['name']]={'$like':'%'+_0x361a82[_0xb054('0x37')]['filter']+'%'};return _0x353724;}})});}_0x13d3d8=_[_0xb054('0x41')]({},_0x13d3d8,_0x361a82[_0xb054('0x43')]);var _0x1e15df={'where':_0x13d3d8['where']};return db[_0xb054('0x2d')]['count'](_0x1e15df)['then'](function(_0x141925){_0x162d4b[_0xb054('0x1f')]=_0x141925;if(_0x361a82[_0xb054('0x37')][_0xb054('0x44')]){_0x13d3d8[_0xb054('0x45')]=[{'all':!![]}];}return db[_0xb054('0x2d')][_0xb054('0x46')](_0x13d3d8);})['then'](function(_0x526d3a){_0x162d4b['rows']=_0x526d3a;return _0x162d4b;})[_0xb054('0x26')](respondWithFilteredResult(_0x4c2ca9,_0x13d3d8))[_0xb054('0x47')](handleError(_0x4c2ca9,null));};exports[_0xb054('0x48')]=function(_0x366fb0,_0xf78ae2){var _0x3c5316={'raw':!![],'where':{'id':_0x366fb0[_0xb054('0x49')]['id']}},_0x478584={};_0x478584[_0xb054('0x32')]=_[_0xb054('0x34')](db[_0xb054('0x2d')]['rawAttributes']);_0x478584['query']=_['keys'](_0x366fb0[_0xb054('0x37')]);_0x478584[_0xb054('0x35')]=_[_0xb054('0x36')](_0x478584[_0xb054('0x32')],_0x478584[_0xb054('0x37')]);_0x3c5316[_0xb054('0x38')]=_['intersection'](_0x478584['model'],qs[_0xb054('0x39')](_0x366fb0[_0xb054('0x37')][_0xb054('0x39')]));_0x3c5316[_0xb054('0x38')]=_0x3c5316[_0xb054('0x38')][_0xb054('0x3a')]?_0x3c5316[_0xb054('0x38')]:_0x478584[_0xb054('0x32')];if(_0x366fb0[_0xb054('0x37')][_0xb054('0x44')]){_0x3c5316[_0xb054('0x45')]=[{'all':!![]}];}_0x3c5316=_['merge']({},_0x3c5316,_0x366fb0['options']);return db['CloudProvider'][_0xb054('0x4a')](_0x3c5316)[_0xb054('0x26')](handleEntityNotFound(_0xf78ae2,null))[_0xb054('0x26')](respondWithResult(_0xf78ae2,null))[_0xb054('0x47')](handleError(_0xf78ae2,null));};exports[_0xb054('0x4b')]=function(_0x3fd800,_0x27c89e){return db[_0xb054('0x2d')][_0xb054('0x4b')](_0x3fd800[_0xb054('0x4c')],{})[_0xb054('0x26')](respondWithResult(_0x27c89e,0xc9))[_0xb054('0x47')](handleError(_0x27c89e,null));};exports[_0xb054('0x25')]=function(_0xe83f67,_0x5f34c8){if(_0xe83f67[_0xb054('0x4c')]['id']){delete _0xe83f67[_0xb054('0x4c')]['id'];}return db[_0xb054('0x2d')]['find']({'where':{'id':_0xe83f67['params']['id']}})['then'](handleEntityNotFound(_0x5f34c8,null))[_0xb054('0x26')](saveUpdates(_0xe83f67['body'],null))['then'](respondWithResult(_0x5f34c8,null))[_0xb054('0x47')](handleError(_0x5f34c8,null));};exports['destroy']=function(_0x83fed1,_0x1db1e4){return db[_0xb054('0x2d')][_0xb054('0x4a')]({'where':{'id':_0x83fed1[_0xb054('0x49')]['id']}})[_0xb054('0x26')](handleEntityNotFound(_0x1db1e4,null))['then'](removeEntity(_0x1db1e4,null))[_0xb054('0x47')](handleError(_0x1db1e4,null));};