8243467cb8067d3096c8c651ad3d8d9b05bb4507
[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 _0xcdb1=['attributes','fields','model','hasOwnProperty','nolimit','limit','order','sort','filter','where','merge','VIRTUAL','options','includeAll','rows','catch','show','params','keys','length','include','find','create','body','html-pdf','eml-format','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','ejs','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','end','status','json','count','offset','set','Content-Range','reject','save','update','then','destroy','sendStatus','stack','send','index','map','Integration','rawAttributes','fieldName','type','name','query','filters','intersection'];(function(_0x3a2523,_0x3c89af){var _0x20a691=function(_0x506308){while(--_0x506308){_0x3a2523['push'](_0x3a2523['shift']());}};_0x20a691(++_0x3c89af);}(_0xcdb1,0xa6));var _0x1cdb=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xcdb1[_0x2641f9];return _0x585741;};'use strict';var pdf=require(_0x1cdb('0x0'));var emlformat=require(_0x1cdb('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x1cdb('0x2'));var rp=require(_0x1cdb('0x3'));var moment=require(_0x1cdb('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x1cdb('0x5'));var util=require('util');var path=require(_0x1cdb('0x6'));var sox=require(_0x1cdb('0x7'));var csv=require(_0x1cdb('0x8'));var ejs=require(_0x1cdb('0x9'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x1cdb('0xa'));var deskjs=require(_0x1cdb('0xb'));var toCsv=require(_0x1cdb('0x8'));var querystring=require(_0x1cdb('0xc'));var Papa=require(_0x1cdb('0xd'));var Redis=require(_0x1cdb('0xe'));var authService=require(_0x1cdb('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x1cdb('0x10'));var hardwareService=require(_0x1cdb('0x11'));var logger=require(_0x1cdb('0x12'))('api');var utils=require(_0x1cdb('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x1cdb('0x14'));var db=require(_0x1cdb('0x15'))['db'];function respondWithStatusCode(_0x2b7371,_0x26d188){_0x26d188=_0x26d188||0xcc;return function(_0x59e4ee){if(_0x59e4ee){return _0x2b7371['sendStatus'](_0x26d188);}return _0x2b7371['status'](_0x26d188)[_0x1cdb('0x16')]();};}function respondWithResult(_0x20e9f2,_0x231633){_0x231633=_0x231633||0xc8;return function(_0x585de0){if(_0x585de0){return _0x20e9f2[_0x1cdb('0x17')](_0x231633)[_0x1cdb('0x18')](_0x585de0);}};}function respondWithFilteredResult(_0x1c7bdd,_0x114ef6){return function(_0x2717d3){if(_0x2717d3){var _0x3bc6d6=_0x2717d3[_0x1cdb('0x19')],_0x289b78=_0x114ef6[_0x1cdb('0x1a')],_0xb02531=_0x114ef6[_0x1cdb('0x1a')]+_0x114ef6['limit'],_0x57e480;if(_0xb02531>=_0x3bc6d6){_0xb02531=_0x3bc6d6;_0x57e480=0xc8;}else{_0x57e480=0xce;}_0x1c7bdd[_0x1cdb('0x17')](_0x57e480);return _0x1c7bdd[_0x1cdb('0x1b')](_0x1cdb('0x1c'),_0x289b78+'-'+_0xb02531+'/'+_0x3bc6d6)[_0x1cdb('0x18')](_0x2717d3);}return null;};}function patchUpdates(_0x5386cb){return function(_0x4298f0){try{jsonpatch['apply'](_0x4298f0,_0x5386cb,!![]);}catch(_0x47b0c8){return BPromise[_0x1cdb('0x1d')](_0x47b0c8);}return _0x4298f0[_0x1cdb('0x1e')]();};}function saveUpdates(_0x4869dc,_0xd14cbf){return function(_0x127dca){if(_0x127dca){return _0x127dca[_0x1cdb('0x1f')](_0x4869dc)[_0x1cdb('0x20')](function(_0x253dc3){return _0x253dc3;});}return null;};}function removeEntity(_0x74b40d,_0x628dd){return function(_0x300f5f){if(_0x300f5f){return _0x300f5f[_0x1cdb('0x21')]()[_0x1cdb('0x20')](function(){_0x74b40d[_0x1cdb('0x17')](0xcc)[_0x1cdb('0x16')]();});}};}function handleEntityNotFound(_0x5ae275,_0x589353){return function(_0x3e0611){if(!_0x3e0611){_0x5ae275[_0x1cdb('0x22')](0x194);}return _0x3e0611;};}function handleError(_0x28ff3a,_0x25edb6){_0x25edb6=_0x25edb6||0x1f4;return function(_0x435233){logger['error'](_0x435233[_0x1cdb('0x23')]);if(_0x435233['name']){delete _0x435233['name'];}_0x28ff3a[_0x1cdb('0x17')](_0x25edb6)[_0x1cdb('0x24')](_0x435233);};}exports[_0x1cdb('0x25')]=function(_0x5c0a7c,_0x3cfe48){var _0x49f2a9={},_0x9b447b={},_0x90493a={'count':0x0,'rows':[]};var _0x4c24ec=_[_0x1cdb('0x26')](db[_0x1cdb('0x27')][_0x1cdb('0x28')],function(_0x138149){return{'name':_0x138149[_0x1cdb('0x29')],'type':_0x138149[_0x1cdb('0x2a')]['key']};});_0x9b447b['model']=_[_0x1cdb('0x26')](_0x4c24ec,_0x1cdb('0x2b'));_0x9b447b['query']=_['keys'](_0x5c0a7c[_0x1cdb('0x2c')]);_0x9b447b[_0x1cdb('0x2d')]=_[_0x1cdb('0x2e')](_0x9b447b['model'],_0x9b447b[_0x1cdb('0x2c')]);_0x49f2a9[_0x1cdb('0x2f')]=_[_0x1cdb('0x2e')](_0x9b447b['model'],qs[_0x1cdb('0x30')](_0x5c0a7c['query'][_0x1cdb('0x30')]));_0x49f2a9['attributes']=_0x49f2a9[_0x1cdb('0x2f')]['length']?_0x49f2a9['attributes']:_0x9b447b[_0x1cdb('0x31')];if(!_0x5c0a7c[_0x1cdb('0x2c')][_0x1cdb('0x32')](_0x1cdb('0x33'))){_0x49f2a9[_0x1cdb('0x34')]=qs[_0x1cdb('0x34')](_0x5c0a7c[_0x1cdb('0x2c')]['limit']);_0x49f2a9[_0x1cdb('0x1a')]=qs[_0x1cdb('0x1a')](_0x5c0a7c[_0x1cdb('0x2c')]['offset']);}_0x49f2a9[_0x1cdb('0x35')]=qs[_0x1cdb('0x36')](_0x5c0a7c[_0x1cdb('0x2c')][_0x1cdb('0x36')]);_0x49f2a9['where']=qs[_0x1cdb('0x2d')](_['pick'](_0x5c0a7c[_0x1cdb('0x2c')],_0x9b447b['filters']),_0x4c24ec);if(_0x5c0a7c[_0x1cdb('0x2c')][_0x1cdb('0x37')]){_0x49f2a9[_0x1cdb('0x38')]=_[_0x1cdb('0x39')](_0x49f2a9[_0x1cdb('0x38')],{'$or':_['map'](_0x4c24ec,function(_0x297d3f){if(_0x297d3f[_0x1cdb('0x2a')]!==_0x1cdb('0x3a')){var _0x44ba59={};_0x44ba59[_0x297d3f['name']]={'$like':'%'+_0x5c0a7c['query']['filter']+'%'};return _0x44ba59;}})});}_0x49f2a9=_[_0x1cdb('0x39')]({},_0x49f2a9,_0x5c0a7c[_0x1cdb('0x3b')]);var _0x2355d8={'where':_0x49f2a9[_0x1cdb('0x38')]};return db[_0x1cdb('0x27')][_0x1cdb('0x19')](_0x2355d8)[_0x1cdb('0x20')](function(_0x498608){_0x90493a[_0x1cdb('0x19')]=_0x498608;if(_0x5c0a7c[_0x1cdb('0x2c')][_0x1cdb('0x3c')]){_0x49f2a9['include']=[{'all':!![]}];}return db[_0x1cdb('0x27')]['findAll'](_0x49f2a9);})['then'](function(_0x267a4f){_0x90493a[_0x1cdb('0x3d')]=_0x267a4f;return _0x90493a;})['then'](respondWithFilteredResult(_0x3cfe48,_0x49f2a9))[_0x1cdb('0x3e')](handleError(_0x3cfe48,null));};exports[_0x1cdb('0x3f')]=function(_0x2ee384,_0x34a2c6){var _0x294344={'raw':![],'where':{'id':_0x2ee384[_0x1cdb('0x40')]['id']}},_0x5fdd0f={};_0x5fdd0f[_0x1cdb('0x31')]=_[_0x1cdb('0x41')](db[_0x1cdb('0x27')][_0x1cdb('0x28')]);_0x5fdd0f['query']=_[_0x1cdb('0x41')](_0x2ee384[_0x1cdb('0x2c')]);_0x5fdd0f[_0x1cdb('0x2d')]=_[_0x1cdb('0x2e')](_0x5fdd0f[_0x1cdb('0x31')],_0x5fdd0f['query']);_0x294344[_0x1cdb('0x2f')]=_[_0x1cdb('0x2e')](_0x5fdd0f[_0x1cdb('0x31')],qs[_0x1cdb('0x30')](_0x2ee384[_0x1cdb('0x2c')][_0x1cdb('0x30')]));_0x294344[_0x1cdb('0x2f')]=_0x294344[_0x1cdb('0x2f')][_0x1cdb('0x42')]?_0x294344[_0x1cdb('0x2f')]:_0x5fdd0f[_0x1cdb('0x31')];if(_0x2ee384[_0x1cdb('0x2c')][_0x1cdb('0x3c')]){_0x294344[_0x1cdb('0x43')]=[{'all':!![]}];}_0x294344=_['merge']({},_0x294344,_0x2ee384[_0x1cdb('0x3b')]);return db[_0x1cdb('0x27')][_0x1cdb('0x44')](_0x294344)[_0x1cdb('0x20')](handleEntityNotFound(_0x34a2c6,null))[_0x1cdb('0x20')](respondWithResult(_0x34a2c6,null))[_0x1cdb('0x3e')](handleError(_0x34a2c6,null));};exports[_0x1cdb('0x45')]=function(_0x32c43c,_0x61270){return db[_0x1cdb('0x27')][_0x1cdb('0x45')](_0x32c43c['body'],{})['then'](respondWithResult(_0x61270,0xc9))[_0x1cdb('0x3e')](handleError(_0x61270,null));};exports[_0x1cdb('0x1f')]=function(_0x6c0339,_0x17903d){if(_0x6c0339[_0x1cdb('0x46')]['id']){delete _0x6c0339['body']['id'];}return db[_0x1cdb('0x27')][_0x1cdb('0x44')]({'where':{'id':_0x6c0339[_0x1cdb('0x40')]['id']}})['then'](handleEntityNotFound(_0x17903d,null))[_0x1cdb('0x20')](saveUpdates(_0x6c0339[_0x1cdb('0x46')],null))[_0x1cdb('0x20')](respondWithResult(_0x17903d,null))['catch'](handleError(_0x17903d,null));};exports[_0x1cdb('0x21')]=function(_0x5d216c,_0x16b128){return db[_0x1cdb('0x27')][_0x1cdb('0x44')]({'where':{'id':_0x5d216c[_0x1cdb('0x40')]['id']}})[_0x1cdb('0x20')](handleEntityNotFound(_0x16b128,null))[_0x1cdb('0x20')](removeEntity(_0x16b128,null))[_0x1cdb('0x3e')](handleError(_0x16b128,null));};