fc9cf5283b7b72a9e8c8b76d6a423cb46e18df99
[motion2.git] / server / api / integration / integration.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 _0x0048=['sendStatus','status','end','count','offset','limit','set','Content-Range','json','reject','destroy','then','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','query','intersection','model','attributes','fields','nolimit','order','sort','filters','pick','merge','where','VIRTUAL','filter','options','Integration','include','catch','show','params','keys','includeAll','create','body','update','find','html-pdf','rimraf','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','jsforce','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb'];(function(_0x1b8bda,_0x43ad31){var _0x1f7050=function(_0x1d8dc6){while(--_0x1d8dc6){_0x1b8bda['push'](_0x1b8bda['shift']());}};_0x1f7050(++_0x43ad31);}(_0x0048,0xba));var _0x8004=function(_0x2da71d,_0x34f66b){_0x2da71d=_0x2da71d-0x0;var _0x16c334=_0x0048[_0x2da71d];return _0x16c334;};'use strict';var pdf=require(_0x8004('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x8004('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8004('0x2'));var rp=require('request-promise');var moment=require(_0x8004('0x3'));var BPromise=require(_0x8004('0x4'));var Mustache=require(_0x8004('0x5'));var util=require('util');var path=require(_0x8004('0x6'));var sox=require(_0x8004('0x7'));var csv=require(_0x8004('0x8'));var ejs=require(_0x8004('0x9'));var fs=require('fs');var _=require(_0x8004('0xa'));var squel=require(_0x8004('0xb'));var crypto=require('crypto');var jsforce=require(_0x8004('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x8004('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x8004('0xd'));var qs=require(_0x8004('0xe'));var as=require(_0x8004('0xf'));var hardwareService=require(_0x8004('0x10'));var logger=require(_0x8004('0x11'))('api');var utils=require('../../config/utils');var config=require(_0x8004('0x12'));var licenseUtil=require(_0x8004('0x13'));var db=require(_0x8004('0x14'))['db'];function respondWithStatusCode(_0x322d99,_0x3c81d4){_0x3c81d4=_0x3c81d4||0xcc;return function(_0x2e7a14){if(_0x2e7a14){return _0x322d99[_0x8004('0x15')](_0x3c81d4);}return _0x322d99[_0x8004('0x16')](_0x3c81d4)[_0x8004('0x17')]();};}function respondWithResult(_0x25046c,_0x2df574){_0x2df574=_0x2df574||0xc8;return function(_0x6337d6){if(_0x6337d6){return _0x25046c[_0x8004('0x16')](_0x2df574)['json'](_0x6337d6);}};}function respondWithFilteredResult(_0x20a9c8,_0x422ee7){return function(_0x4cf568){if(_0x4cf568){var _0xb24698=_0x4cf568[_0x8004('0x18')],_0x336d8a=_0x422ee7[_0x8004('0x19')],_0x2a9a10=_0x422ee7[_0x8004('0x19')]+_0x422ee7[_0x8004('0x1a')],_0x593438;if(_0x2a9a10>=_0xb24698){_0x2a9a10=_0xb24698;_0x593438=0xc8;}else{_0x593438=0xce;}_0x20a9c8[_0x8004('0x16')](_0x593438);return _0x20a9c8[_0x8004('0x1b')](_0x8004('0x1c'),_0x336d8a+'-'+_0x2a9a10+'/'+_0xb24698)[_0x8004('0x1d')](_0x4cf568);}return null;};}function patchUpdates(_0x47a9e6){return function(_0x417422){try{jsonpatch['apply'](_0x417422,_0x47a9e6,!![]);}catch(_0x5ea5d1){return BPromise[_0x8004('0x1e')](_0x5ea5d1);}return _0x417422['save']();};}function saveUpdates(_0xf3dc9c,_0x294ec8){return function(_0x663eef){if(_0x663eef){return _0x663eef['update'](_0xf3dc9c)['then'](function(_0x57b89f){return _0x57b89f;});}return null;};}function removeEntity(_0x1ebda7,_0x2a95e5){return function(_0x259517){if(_0x259517){return _0x259517[_0x8004('0x1f')]()[_0x8004('0x20')](function(){_0x1ebda7['status'](0xcc)[_0x8004('0x17')]();});}};}function handleEntityNotFound(_0x18f938,_0x41396a){return function(_0x5b3134){if(!_0x5b3134){_0x18f938[_0x8004('0x15')](0x194);}return _0x5b3134;};}function handleError(_0xf903e8,_0x527f1b){_0x527f1b=_0x527f1b||0x1f4;return function(_0x33cc5){logger[_0x8004('0x21')](_0x33cc5[_0x8004('0x22')]);if(_0x33cc5[_0x8004('0x23')]){delete _0x33cc5['name'];}_0xf903e8['status'](_0x527f1b)[_0x8004('0x24')](_0x33cc5);};}exports[_0x8004('0x25')]=function(_0x234ea3,_0x45d8f2){var _0x38ac3d={},_0x32658e={},_0x2efb68={'count':0x0,'rows':[]};var _0x467184=_[_0x8004('0x26')](db['Integration'][_0x8004('0x27')],function(_0x1144db){return{'name':_0x1144db[_0x8004('0x28')],'type':_0x1144db[_0x8004('0x29')][_0x8004('0x2a')]};});_0x32658e['model']=_[_0x8004('0x26')](_0x467184,'name');_0x32658e['query']=_['keys'](_0x234ea3[_0x8004('0x2b')]);_0x32658e['filters']=_[_0x8004('0x2c')](_0x32658e[_0x8004('0x2d')],_0x32658e[_0x8004('0x2b')]);_0x38ac3d[_0x8004('0x2e')]=_[_0x8004('0x2c')](_0x32658e['model'],qs[_0x8004('0x2f')](_0x234ea3[_0x8004('0x2b')][_0x8004('0x2f')]));_0x38ac3d['attributes']=_0x38ac3d[_0x8004('0x2e')]['length']?_0x38ac3d[_0x8004('0x2e')]:_0x32658e[_0x8004('0x2d')];if(!_0x234ea3[_0x8004('0x2b')]['hasOwnProperty'](_0x8004('0x30'))){_0x38ac3d['limit']=qs[_0x8004('0x1a')](_0x234ea3[_0x8004('0x2b')][_0x8004('0x1a')]);_0x38ac3d['offset']=qs[_0x8004('0x19')](_0x234ea3[_0x8004('0x2b')][_0x8004('0x19')]);}_0x38ac3d[_0x8004('0x31')]=qs[_0x8004('0x32')](_0x234ea3['query']['sort']);_0x38ac3d['where']=qs[_0x8004('0x33')](_[_0x8004('0x34')](_0x234ea3[_0x8004('0x2b')],_0x32658e['filters']),_0x467184);if(_0x234ea3['query']['filter']){_0x38ac3d['where']=_[_0x8004('0x35')](_0x38ac3d[_0x8004('0x36')],{'$or':_[_0x8004('0x26')](_0x467184,function(_0x1ed6ad){if(_0x1ed6ad[_0x8004('0x29')]!==_0x8004('0x37')){var _0x5497f9={};_0x5497f9[_0x1ed6ad[_0x8004('0x23')]]={'$like':'%'+_0x234ea3['query'][_0x8004('0x38')]+'%'};return _0x5497f9;}})});}_0x38ac3d=_[_0x8004('0x35')]({},_0x38ac3d,_0x234ea3[_0x8004('0x39')]);var _0x10f569={'where':_0x38ac3d[_0x8004('0x36')]};return db[_0x8004('0x3a')][_0x8004('0x18')](_0x10f569)[_0x8004('0x20')](function(_0x153383){_0x2efb68['count']=_0x153383;if(_0x234ea3[_0x8004('0x2b')]['includeAll']){_0x38ac3d[_0x8004('0x3b')]=[{'all':!![]}];}return db[_0x8004('0x3a')]['findAll'](_0x38ac3d);})[_0x8004('0x20')](function(_0x57dac3){_0x2efb68['rows']=_0x57dac3;return _0x2efb68;})[_0x8004('0x20')](respondWithFilteredResult(_0x45d8f2,_0x38ac3d))[_0x8004('0x3c')](handleError(_0x45d8f2,null));};exports[_0x8004('0x3d')]=function(_0xc944c0,_0x291499){var _0x5a16ca={'raw':![],'where':{'id':_0xc944c0[_0x8004('0x3e')]['id']}},_0x4e42ec={};_0x4e42ec['model']=_[_0x8004('0x3f')](db[_0x8004('0x3a')][_0x8004('0x27')]);_0x4e42ec['query']=_[_0x8004('0x3f')](_0xc944c0[_0x8004('0x2b')]);_0x4e42ec['filters']=_['intersection'](_0x4e42ec[_0x8004('0x2d')],_0x4e42ec[_0x8004('0x2b')]);_0x5a16ca[_0x8004('0x2e')]=_[_0x8004('0x2c')](_0x4e42ec['model'],qs[_0x8004('0x2f')](_0xc944c0[_0x8004('0x2b')][_0x8004('0x2f')]));_0x5a16ca[_0x8004('0x2e')]=_0x5a16ca[_0x8004('0x2e')]['length']?_0x5a16ca[_0x8004('0x2e')]:_0x4e42ec[_0x8004('0x2d')];if(_0xc944c0[_0x8004('0x2b')][_0x8004('0x40')]){_0x5a16ca['include']=[{'all':!![]}];}_0x5a16ca=_['merge']({},_0x5a16ca,_0xc944c0[_0x8004('0x39')]);return db[_0x8004('0x3a')]['find'](_0x5a16ca)[_0x8004('0x20')](handleEntityNotFound(_0x291499,null))['then'](respondWithResult(_0x291499,null))['catch'](handleError(_0x291499,null));};exports[_0x8004('0x41')]=function(_0x4718c0,_0x8a043f){return db[_0x8004('0x3a')][_0x8004('0x41')](_0x4718c0[_0x8004('0x42')],{})[_0x8004('0x20')](respondWithResult(_0x8a043f,0xc9))[_0x8004('0x3c')](handleError(_0x8a043f,null));};exports[_0x8004('0x43')]=function(_0x1aa345,_0x1ae2b9){if(_0x1aa345['body']['id']){delete _0x1aa345[_0x8004('0x42')]['id'];}return db[_0x8004('0x3a')][_0x8004('0x44')]({'where':{'id':_0x1aa345[_0x8004('0x3e')]['id']}})[_0x8004('0x20')](handleEntityNotFound(_0x1ae2b9,null))[_0x8004('0x20')](saveUpdates(_0x1aa345[_0x8004('0x42')],null))['then'](respondWithResult(_0x1ae2b9,null))['catch'](handleError(_0x1ae2b9,null));};exports[_0x8004('0x1f')]=function(_0x13141e,_0x5e691f){return db[_0x8004('0x3a')][_0x8004('0x44')]({'where':{'id':_0x13141e['params']['id']}})[_0x8004('0x20')](handleEntityNotFound(_0x5e691f,null))[_0x8004('0x20')](removeEntity(_0x5e691f,null))[_0x8004('0x3c')](handleError(_0x5e691f,null));};