226afc6146d9bfa45cc348c3cca06411d43114af
[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 _0x2870=['status','set','Content-Range','apply','save','update','then','stack','name','send','map','Integration','rawAttributes','fieldName','key','model','query','intersection','attributes','fields','length','hasOwnProperty','order','sort','filters','pick','filter','where','merge','type','VIRTUAL','options','includeAll','findAll','rows','show','params','keys','find','catch','create','body','destroy','eml-format','rimraf','zip-dir','moment','mustache','util','path','ejs','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','json','offset','limit','undefined','count'];(function(_0x4a002e,_0x14a5f6){var _0xb86ae3=function(_0x10a189){while(--_0x10a189){_0x4a002e['push'](_0x4a002e['shift']());}};_0xb86ae3(++_0x14a5f6);}(_0x2870,0x18e));var _0x0287=function(_0x5d6c3e,_0x409a3e){_0x5d6c3e=_0x5d6c3e-0x0;var _0x44ecb7=_0x2870[_0x5d6c3e];return _0x44ecb7;};'use strict';var emlformat=require(_0x0287('0x0'));var rimraf=require(_0x0287('0x1'));var zipdir=require(_0x0287('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0287('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0287('0x4'));var util=require(_0x0287('0x5'));var path=require(_0x0287('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x0287('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x0287('0x8'));var squel=require('squel');var crypto=require(_0x0287('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x0287('0xa'));var toCsv=require('to-csv');var querystring=require(_0x0287('0xb'));var Papa=require(_0x0287('0xc'));var Redis=require(_0x0287('0xd'));var authService=require(_0x0287('0xe'));var qs=require(_0x0287('0xf'));var as=require(_0x0287('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x0287('0x11'));var utils=require(_0x0287('0x12'));var config=require(_0x0287('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x0287('0x14'))['db'];function respondWithStatusCode(_0x55ac53,_0x523bd1){_0x523bd1=_0x523bd1||0xcc;return function(_0x44fe6e){if(_0x44fe6e){return _0x55ac53[_0x0287('0x15')](_0x523bd1);}return _0x55ac53['status'](_0x523bd1)[_0x0287('0x16')]();};}function respondWithResult(_0x4b5dc9,_0x331d48){_0x331d48=_0x331d48||0xc8;return function(_0x21a00b){if(_0x21a00b){return _0x4b5dc9['status'](_0x331d48)[_0x0287('0x17')](_0x21a00b);}};}function respondWithFilteredResult(_0x39b25d,_0x187782){return function(_0x577478){if(_0x577478){var _0x2b481a=typeof _0x187782[_0x0287('0x18')]==='undefined'&&typeof _0x187782[_0x0287('0x19')]===_0x0287('0x1a');var _0x4aa08b=_0x577478[_0x0287('0x1b')];var _0x1d8c4d=_0x2b481a?0x0:_0x187782[_0x0287('0x18')];var _0x14042a=_0x2b481a?_0x577478[_0x0287('0x1b')]:_0x187782[_0x0287('0x18')]+_0x187782[_0x0287('0x19')];var _0x13ba83;if(_0x14042a>=_0x4aa08b){_0x14042a=_0x4aa08b;_0x13ba83=0xc8;}else{_0x13ba83=0xce;}_0x39b25d[_0x0287('0x1c')](_0x13ba83);return _0x39b25d[_0x0287('0x1d')](_0x0287('0x1e'),_0x1d8c4d+'-'+_0x14042a+'/'+_0x4aa08b)[_0x0287('0x17')](_0x577478);}return null;};}function patchUpdates(_0x5ba106){return function(_0x59531d){try{jsonpatch[_0x0287('0x1f')](_0x59531d,_0x5ba106,!![]);}catch(_0x423abb){return BPromise['reject'](_0x423abb);}return _0x59531d[_0x0287('0x20')]();};}function saveUpdates(_0x8363e0,_0x1e9f64){return function(_0x47def3){if(_0x47def3){return _0x47def3[_0x0287('0x21')](_0x8363e0)[_0x0287('0x22')](function(_0x2e5223){return _0x2e5223;});}return null;};}function removeEntity(_0x36b0a9,_0x1355b8){return function(_0x119103){if(_0x119103){return _0x119103['destroy']()[_0x0287('0x22')](function(){_0x36b0a9[_0x0287('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4caeb1,_0x22534c){return function(_0x56e2f3){if(!_0x56e2f3){_0x4caeb1[_0x0287('0x15')](0x194);}return _0x56e2f3;};}function handleError(_0x5c55c9,_0x2f93f2){_0x2f93f2=_0x2f93f2||0x1f4;return function(_0x3ce0fa){logger['error'](_0x3ce0fa[_0x0287('0x23')]);if(_0x3ce0fa['name']){delete _0x3ce0fa[_0x0287('0x24')];}_0x5c55c9['status'](_0x2f93f2)[_0x0287('0x25')](_0x3ce0fa);};}exports['index']=function(_0x11b03f,_0xc73017){var _0x36e981={},_0x10beb9={},_0x5b7231={'count':0x0,'rows':[]};var _0x3a0a7d=_[_0x0287('0x26')](db[_0x0287('0x27')][_0x0287('0x28')],function(_0x3a3fa1){return{'name':_0x3a3fa1[_0x0287('0x29')],'type':_0x3a3fa1['type'][_0x0287('0x2a')]};});_0x10beb9[_0x0287('0x2b')]=_[_0x0287('0x26')](_0x3a0a7d,_0x0287('0x24'));_0x10beb9[_0x0287('0x2c')]=_['keys'](_0x11b03f['query']);_0x10beb9['filters']=_[_0x0287('0x2d')](_0x10beb9['model'],_0x10beb9[_0x0287('0x2c')]);_0x36e981[_0x0287('0x2e')]=_[_0x0287('0x2d')](_0x10beb9['model'],qs[_0x0287('0x2f')](_0x11b03f[_0x0287('0x2c')][_0x0287('0x2f')]));_0x36e981[_0x0287('0x2e')]=_0x36e981[_0x0287('0x2e')][_0x0287('0x30')]?_0x36e981[_0x0287('0x2e')]:_0x10beb9['model'];if(!_0x11b03f[_0x0287('0x2c')][_0x0287('0x31')]('nolimit')){_0x36e981[_0x0287('0x19')]=qs[_0x0287('0x19')](_0x11b03f[_0x0287('0x2c')]['limit']);_0x36e981['offset']=qs[_0x0287('0x18')](_0x11b03f[_0x0287('0x2c')][_0x0287('0x18')]);}_0x36e981[_0x0287('0x32')]=qs[_0x0287('0x33')](_0x11b03f['query'][_0x0287('0x33')]);_0x36e981['where']=qs[_0x0287('0x34')](_[_0x0287('0x35')](_0x11b03f[_0x0287('0x2c')],_0x10beb9[_0x0287('0x34')]),_0x3a0a7d);if(_0x11b03f[_0x0287('0x2c')][_0x0287('0x36')]){_0x36e981[_0x0287('0x37')]=_[_0x0287('0x38')](_0x36e981[_0x0287('0x37')],{'$or':_[_0x0287('0x26')](_0x3a0a7d,function(_0x1ad8d0){if(_0x1ad8d0[_0x0287('0x39')]!==_0x0287('0x3a')){var _0x3981be={};_0x3981be[_0x1ad8d0['name']]={'$like':'%'+_0x11b03f[_0x0287('0x2c')]['filter']+'%'};return _0x3981be;}})});}_0x36e981=_[_0x0287('0x38')]({},_0x36e981,_0x11b03f[_0x0287('0x3b')]);var _0x206067={'where':_0x36e981[_0x0287('0x37')]};return db['Integration'][_0x0287('0x1b')](_0x206067)[_0x0287('0x22')](function(_0x48af56){_0x5b7231[_0x0287('0x1b')]=_0x48af56;if(_0x11b03f['query'][_0x0287('0x3c')]){_0x36e981['include']=[{'all':!![]}];}return db[_0x0287('0x27')][_0x0287('0x3d')](_0x36e981);})[_0x0287('0x22')](function(_0x3164f2){_0x5b7231[_0x0287('0x3e')]=_0x3164f2;return _0x5b7231;})[_0x0287('0x22')](respondWithFilteredResult(_0xc73017,_0x36e981))['catch'](handleError(_0xc73017,null));};exports[_0x0287('0x3f')]=function(_0x530a9a,_0x470360){var _0x18eec8={'raw':![],'where':{'id':_0x530a9a[_0x0287('0x40')]['id']}},_0x5ea030={};_0x5ea030[_0x0287('0x2b')]=_[_0x0287('0x41')](db[_0x0287('0x27')]['rawAttributes']);_0x5ea030['query']=_[_0x0287('0x41')](_0x530a9a['query']);_0x5ea030[_0x0287('0x34')]=_[_0x0287('0x2d')](_0x5ea030[_0x0287('0x2b')],_0x5ea030[_0x0287('0x2c')]);_0x18eec8['attributes']=_[_0x0287('0x2d')](_0x5ea030[_0x0287('0x2b')],qs[_0x0287('0x2f')](_0x530a9a[_0x0287('0x2c')][_0x0287('0x2f')]));_0x18eec8[_0x0287('0x2e')]=_0x18eec8[_0x0287('0x2e')]['length']?_0x18eec8[_0x0287('0x2e')]:_0x5ea030['model'];if(_0x530a9a[_0x0287('0x2c')]['includeAll']){_0x18eec8['include']=[{'all':!![]}];}_0x18eec8=_[_0x0287('0x38')]({},_0x18eec8,_0x530a9a['options']);return db[_0x0287('0x27')][_0x0287('0x42')](_0x18eec8)['then'](handleEntityNotFound(_0x470360,null))['then'](respondWithResult(_0x470360,null))[_0x0287('0x43')](handleError(_0x470360,null));};exports[_0x0287('0x44')]=function(_0x19f0ae,_0x38636b){return db['Integration'][_0x0287('0x44')](_0x19f0ae['body'],{})[_0x0287('0x22')](respondWithResult(_0x38636b,0xc9))[_0x0287('0x43')](handleError(_0x38636b,null));};exports['update']=function(_0x2a6e4f,_0x4182e3){if(_0x2a6e4f[_0x0287('0x45')]['id']){delete _0x2a6e4f[_0x0287('0x45')]['id'];}return db['Integration'][_0x0287('0x42')]({'where':{'id':_0x2a6e4f[_0x0287('0x40')]['id']}})[_0x0287('0x22')](handleEntityNotFound(_0x4182e3,null))[_0x0287('0x22')](saveUpdates(_0x2a6e4f['body'],null))[_0x0287('0x22')](respondWithResult(_0x4182e3,null))['catch'](handleError(_0x4182e3,null));};exports[_0x0287('0x46')]=function(_0x2f4242,_0x42ce52){return db['Integration'][_0x0287('0x42')]({'where':{'id':_0x2f4242[_0x0287('0x40')]['id']}})[_0x0287('0x22')](handleEntityNotFound(_0x42ce52,null))[_0x0287('0x22')](removeEntity(_0x42ce52,null))['catch'](handleError(_0x42ce52,null));};