76585e52ac2bbef45b59bca24747b67749b1fad9
[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 _0x4281=['send','index','map','CloudProvider','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','options','includeAll','findAll','rows','catch','show','params','rawAttributes','include','merge','create','body','find','html-pdf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','ejs','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','count','offset','limit','json','reject','save','update','destroy','then','end','error','name'];(function(_0xc14bf4,_0x4248d6){var _0x347925=function(_0x2c7a5){while(--_0x2c7a5){_0xc14bf4['push'](_0xc14bf4['shift']());}};_0x347925(++_0x4248d6);}(_0x4281,0xf1));var _0x1428=function(_0x45f111,_0x3a1a4a){_0x45f111=_0x45f111-0x0;var _0x483508=_0x4281[_0x45f111];return _0x483508;};'use strict';var pdf=require(_0x1428('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x1428('0x1'));var jsonpatch=require(_0x1428('0x2'));var rp=require('request-promise');var moment=require(_0x1428('0x3'));var BPromise=require(_0x1428('0x4'));var Mustache=require(_0x1428('0x5'));var util=require(_0x1428('0x6'));var path=require(_0x1428('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x1428('0x8'));var fs=require('fs');var _=require(_0x1428('0x9'));var squel=require('squel');var crypto=require(_0x1428('0xa'));var jsforce=require(_0x1428('0xb'));var deskjs=require(_0x1428('0xc'));var toCsv=require(_0x1428('0xd'));var querystring=require(_0x1428('0xe'));var Papa=require(_0x1428('0xf'));var Redis=require('ioredis');var authService=require(_0x1428('0x10'));var qs=require(_0x1428('0x11'));var as=require(_0x1428('0x12'));var hardwareService=require(_0x1428('0x13'));var logger=require(_0x1428('0x14'))(_0x1428('0x15'));var utils=require(_0x1428('0x16'));var config=require(_0x1428('0x17'));var db=require(_0x1428('0x18'))['db'];function respondWithStatusCode(_0x1ac9bd,_0x4ce35b){_0x4ce35b=_0x4ce35b||0xcc;return function(_0xb35428){if(_0xb35428){return _0x1ac9bd[_0x1428('0x19')](_0x4ce35b);}return _0x1ac9bd[_0x1428('0x1a')](_0x4ce35b)['end']();};}function respondWithResult(_0xe1437d,_0x3e3ac0){_0x3e3ac0=_0x3e3ac0||0xc8;return function(_0x326e25){if(_0x326e25){return _0xe1437d[_0x1428('0x1a')](_0x3e3ac0)['json'](_0x326e25);}};}function respondWithFilteredResult(_0x3b92b2,_0x1ce359){return function(_0x195948){if(_0x195948){var _0x3a933b=_0x195948[_0x1428('0x1b')],_0x560abe=_0x1ce359[_0x1428('0x1c')],_0xf3137=_0x1ce359[_0x1428('0x1c')]+_0x1ce359[_0x1428('0x1d')],_0x34623c;if(_0xf3137>=_0x3a933b){_0xf3137=_0x3a933b;_0x34623c=0xc8;}else{_0x34623c=0xce;}_0x3b92b2[_0x1428('0x1a')](_0x34623c);return _0x3b92b2['set']('Content-Range',_0x560abe+'-'+_0xf3137+'/'+_0x3a933b)[_0x1428('0x1e')](_0x195948);}return null;};}function patchUpdates(_0x2f4ee9){return function(_0x110b0b){try{jsonpatch['apply'](_0x110b0b,_0x2f4ee9,!![]);}catch(_0x3378da){return BPromise[_0x1428('0x1f')](_0x3378da);}return _0x110b0b[_0x1428('0x20')]();};}function saveUpdates(_0x13d2dd,_0x55277e){return function(_0x18b428){if(_0x18b428){return _0x18b428[_0x1428('0x21')](_0x13d2dd)['then'](function(_0x2aa7b6){return _0x2aa7b6;});}return null;};}function removeEntity(_0x4e8c8c,_0x4dd09d){return function(_0x2b776e){if(_0x2b776e){return _0x2b776e[_0x1428('0x22')]()[_0x1428('0x23')](function(){_0x4e8c8c[_0x1428('0x1a')](0xcc)[_0x1428('0x24')]();});}};}function handleEntityNotFound(_0x59c08f,_0x540df9){return function(_0x5ae633){if(!_0x5ae633){_0x59c08f[_0x1428('0x19')](0x194);}return _0x5ae633;};}function handleError(_0x4d7a78,_0x443cab){_0x443cab=_0x443cab||0x1f4;return function(_0x172216){logger[_0x1428('0x25')](_0x172216['stack']);if(_0x172216['name']){delete _0x172216[_0x1428('0x26')];}_0x4d7a78[_0x1428('0x1a')](_0x443cab)[_0x1428('0x27')](_0x172216);};}exports[_0x1428('0x28')]=function(_0x496a0d,_0x433ee3){var _0x147493={},_0x695108={},_0x5c1129={'count':0x0,'rows':[]};var _0x19bcc=_[_0x1428('0x29')](db[_0x1428('0x2a')]['rawAttributes'],function(_0x30748c){return{'name':_0x30748c['fieldName'],'type':_0x30748c[_0x1428('0x2b')]['key']};});_0x695108[_0x1428('0x2c')]=_[_0x1428('0x29')](_0x19bcc,_0x1428('0x26'));_0x695108[_0x1428('0x2d')]=_[_0x1428('0x2e')](_0x496a0d[_0x1428('0x2d')]);_0x695108[_0x1428('0x2f')]=_[_0x1428('0x30')](_0x695108[_0x1428('0x2c')],_0x695108['query']);_0x147493[_0x1428('0x31')]=_['intersection'](_0x695108[_0x1428('0x2c')],qs['fields'](_0x496a0d[_0x1428('0x2d')][_0x1428('0x32')]));_0x147493['attributes']=_0x147493[_0x1428('0x31')][_0x1428('0x33')]?_0x147493[_0x1428('0x31')]:_0x695108[_0x1428('0x2c')];if(!_0x496a0d[_0x1428('0x2d')]['hasOwnProperty'](_0x1428('0x34'))){_0x147493[_0x1428('0x1d')]=qs['limit'](_0x496a0d['query'][_0x1428('0x1d')]);_0x147493[_0x1428('0x1c')]=qs['offset'](_0x496a0d[_0x1428('0x2d')][_0x1428('0x1c')]);}_0x147493[_0x1428('0x35')]=qs[_0x1428('0x36')](_0x496a0d[_0x1428('0x2d')][_0x1428('0x36')]);_0x147493[_0x1428('0x37')]=qs['filters'](_['pick'](_0x496a0d[_0x1428('0x2d')],_0x695108[_0x1428('0x2f')]),_0x19bcc);if(_0x496a0d[_0x1428('0x2d')][_0x1428('0x38')]){_0x147493['where']=_['merge'](_0x147493[_0x1428('0x37')],{'$or':_[_0x1428('0x29')](_0x19bcc,function(_0x498bef){if(_0x498bef[_0x1428('0x2b')]!=='VIRTUAL'){var _0x4bf59e={};_0x4bf59e[_0x498bef[_0x1428('0x26')]]={'$like':'%'+_0x496a0d[_0x1428('0x2d')]['filter']+'%'};return _0x4bf59e;}})});}_0x147493=_['merge']({},_0x147493,_0x496a0d[_0x1428('0x39')]);var _0x53aa1a={'where':_0x147493[_0x1428('0x37')]};return db[_0x1428('0x2a')][_0x1428('0x1b')](_0x53aa1a)[_0x1428('0x23')](function(_0x385ce7){_0x5c1129[_0x1428('0x1b')]=_0x385ce7;if(_0x496a0d['query'][_0x1428('0x3a')]){_0x147493['include']=[{'all':!![]}];}return db[_0x1428('0x2a')][_0x1428('0x3b')](_0x147493);})[_0x1428('0x23')](function(_0x3a1dd3){_0x5c1129[_0x1428('0x3c')]=_0x3a1dd3;return _0x5c1129;})[_0x1428('0x23')](respondWithFilteredResult(_0x433ee3,_0x147493))[_0x1428('0x3d')](handleError(_0x433ee3,null));};exports[_0x1428('0x3e')]=function(_0x5f1167,_0x35d653){var _0x251bea={'raw':!![],'where':{'id':_0x5f1167[_0x1428('0x3f')]['id']}},_0x4fd128={};_0x4fd128['model']=_[_0x1428('0x2e')](db[_0x1428('0x2a')][_0x1428('0x40')]);_0x4fd128[_0x1428('0x2d')]=_['keys'](_0x5f1167['query']);_0x4fd128['filters']=_['intersection'](_0x4fd128[_0x1428('0x2c')],_0x4fd128['query']);_0x251bea[_0x1428('0x31')]=_[_0x1428('0x30')](_0x4fd128[_0x1428('0x2c')],qs['fields'](_0x5f1167[_0x1428('0x2d')][_0x1428('0x32')]));_0x251bea['attributes']=_0x251bea[_0x1428('0x31')][_0x1428('0x33')]?_0x251bea[_0x1428('0x31')]:_0x4fd128[_0x1428('0x2c')];if(_0x5f1167[_0x1428('0x2d')][_0x1428('0x3a')]){_0x251bea[_0x1428('0x41')]=[{'all':!![]}];}_0x251bea=_[_0x1428('0x42')]({},_0x251bea,_0x5f1167[_0x1428('0x39')]);return db['CloudProvider']['find'](_0x251bea)['then'](handleEntityNotFound(_0x35d653,null))[_0x1428('0x23')](respondWithResult(_0x35d653,null))['catch'](handleError(_0x35d653,null));};exports[_0x1428('0x43')]=function(_0x44f0d6,_0x52dd2b){return db[_0x1428('0x2a')][_0x1428('0x43')](_0x44f0d6[_0x1428('0x44')],{})[_0x1428('0x23')](respondWithResult(_0x52dd2b,0xc9))[_0x1428('0x3d')](handleError(_0x52dd2b,null));};exports['update']=function(_0x1f97ea,_0x4bfe23){if(_0x1f97ea['body']['id']){delete _0x1f97ea['body']['id'];}return db[_0x1428('0x2a')][_0x1428('0x45')]({'where':{'id':_0x1f97ea[_0x1428('0x3f')]['id']}})[_0x1428('0x23')](handleEntityNotFound(_0x4bfe23,null))[_0x1428('0x23')](saveUpdates(_0x1f97ea[_0x1428('0x44')],null))['then'](respondWithResult(_0x4bfe23,null))[_0x1428('0x3d')](handleError(_0x4bfe23,null));};exports[_0x1428('0x22')]=function(_0x5dcbe1,_0x3550ef){return db[_0x1428('0x2a')][_0x1428('0x45')]({'where':{'id':_0x5dcbe1['params']['id']}})['then'](handleEntityNotFound(_0x3550ef,null))[_0x1428('0x23')](removeEntity(_0x3550ef,null))[_0x1428('0x3d')](handleError(_0x3550ef,null));};