b0a7c925379892c53c5fe183ba3b2cd7d4ec9070
[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 _0x5586=['eml-format','rimraf','zip-dir','request-promise','mustache','util','path','sox','lodash','squel','jsforce','to-csv','querystring','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../mysqldb','sendStatus','status','json','count','offset','limit','apply','save','update','then','end','error','stack','name','send','index','map','Integration','key','query','filters','model','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','intersection','create','body','destroy','html-pdf'];(function(_0x3fa552,_0x5da82c){var _0x44a74a=function(_0x337b88){while(--_0x337b88){_0x3fa552['push'](_0x3fa552['shift']());}};_0x44a74a(++_0x5da82c);}(_0x5586,0xc5));var _0x6558=function(_0x2aea9e,_0x1f587f){_0x2aea9e=_0x2aea9e-0x0;var _0x430b92=_0x5586[_0x2aea9e];return _0x430b92;};'use strict';var pdf=require(_0x6558('0x0'));var emlformat=require(_0x6558('0x1'));var rimraf=require(_0x6558('0x2'));var zipdir=require(_0x6558('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6558('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x6558('0x5'));var util=require(_0x6558('0x6'));var path=require(_0x6558('0x7'));var sox=require(_0x6558('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x6558('0x9'));var squel=require(_0x6558('0xa'));var crypto=require('crypto');var jsforce=require(_0x6558('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x6558('0xc'));var querystring=require(_0x6558('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x6558('0xe'));var qs=require(_0x6558('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x6558('0x10'));var utils=require(_0x6558('0x11'));var config=require('../../config/environment');var db=require(_0x6558('0x12'))['db'];function respondWithStatusCode(_0x46d599,_0x27eb09){_0x27eb09=_0x27eb09||0xcc;return function(_0x5befb2){if(_0x5befb2){return _0x46d599[_0x6558('0x13')](_0x27eb09);}return _0x46d599[_0x6558('0x14')](_0x27eb09)['end']();};}function respondWithResult(_0x105335,_0x270301){_0x270301=_0x270301||0xc8;return function(_0x1fb581){if(_0x1fb581){return _0x105335['status'](_0x270301)[_0x6558('0x15')](_0x1fb581);}};}function respondWithFilteredResult(_0x1c2ef8,_0x50d322){return function(_0x359202){if(_0x359202){var _0x5c8329=_0x359202[_0x6558('0x16')],_0x3c1a5a=_0x50d322[_0x6558('0x17')],_0x4c645d=_0x50d322[_0x6558('0x17')]+_0x50d322[_0x6558('0x18')],_0x37afaf;if(_0x4c645d>=_0x5c8329){_0x4c645d=_0x5c8329;_0x37afaf=0xc8;}else{_0x37afaf=0xce;}_0x1c2ef8[_0x6558('0x14')](_0x37afaf);return _0x1c2ef8['set']('Content-Range',_0x3c1a5a+'-'+_0x4c645d+'/'+_0x5c8329)[_0x6558('0x15')](_0x359202);}return null;};}function patchUpdates(_0x46cacb){return function(_0x40814e){try{jsonpatch[_0x6558('0x19')](_0x40814e,_0x46cacb,!![]);}catch(_0x46db78){return BPromise['reject'](_0x46db78);}return _0x40814e[_0x6558('0x1a')]();};}function saveUpdates(_0x1bb2d8,_0x58db17){return function(_0x388c72){if(_0x388c72){return _0x388c72[_0x6558('0x1b')](_0x1bb2d8)[_0x6558('0x1c')](function(_0x479928){return _0x479928;});}return null;};}function removeEntity(_0x51bc52,_0x121ec4){return function(_0x1daa41){if(_0x1daa41){return _0x1daa41['destroy']()[_0x6558('0x1c')](function(){_0x51bc52[_0x6558('0x14')](0xcc)[_0x6558('0x1d')]();});}};}function handleEntityNotFound(_0x29d124,_0x2645d0){return function(_0x5b0097){if(!_0x5b0097){_0x29d124['sendStatus'](0x194);}return _0x5b0097;};}function handleError(_0x2f6e6f,_0x2a6cca){_0x2a6cca=_0x2a6cca||0x1f4;return function(_0x3cacd9){logger[_0x6558('0x1e')](_0x3cacd9[_0x6558('0x1f')]);if(_0x3cacd9[_0x6558('0x20')]){delete _0x3cacd9['name'];}_0x2f6e6f[_0x6558('0x14')](_0x2a6cca)[_0x6558('0x21')](_0x3cacd9);};}exports[_0x6558('0x22')]=function(_0x13816f,_0x3c0489){var _0x4fbef9={},_0x3f2846={},_0x166149={'count':0x0,'rows':[]};var _0x4660ae=_[_0x6558('0x23')](db[_0x6558('0x24')]['rawAttributes'],function(_0x2c46ae){return{'name':_0x2c46ae['fieldName'],'type':_0x2c46ae['type'][_0x6558('0x25')]};});_0x3f2846['model']=_['map'](_0x4660ae,_0x6558('0x20'));_0x3f2846[_0x6558('0x26')]=_['keys'](_0x13816f[_0x6558('0x26')]);_0x3f2846[_0x6558('0x27')]=_['intersection'](_0x3f2846[_0x6558('0x28')],_0x3f2846[_0x6558('0x26')]);_0x4fbef9[_0x6558('0x29')]=_['intersection'](_0x3f2846['model'],qs[_0x6558('0x2a')](_0x13816f[_0x6558('0x26')]['fields']));_0x4fbef9['attributes']=_0x4fbef9[_0x6558('0x29')][_0x6558('0x2b')]?_0x4fbef9[_0x6558('0x29')]:_0x3f2846[_0x6558('0x28')];if(!_0x13816f['query']['hasOwnProperty'](_0x6558('0x2c'))){_0x4fbef9[_0x6558('0x18')]=qs['limit'](_0x13816f[_0x6558('0x26')][_0x6558('0x18')]);_0x4fbef9[_0x6558('0x17')]=qs[_0x6558('0x17')](_0x13816f['query'][_0x6558('0x17')]);}_0x4fbef9[_0x6558('0x2d')]=qs[_0x6558('0x2e')](_0x13816f[_0x6558('0x26')][_0x6558('0x2e')]);_0x4fbef9[_0x6558('0x2f')]=qs[_0x6558('0x27')](_[_0x6558('0x30')](_0x13816f['query'],_0x3f2846[_0x6558('0x27')]),_0x4660ae);if(_0x13816f[_0x6558('0x26')][_0x6558('0x31')]){_0x4fbef9[_0x6558('0x2f')]=_[_0x6558('0x32')](_0x4fbef9[_0x6558('0x2f')],{'$or':_['map'](_0x4660ae,function(_0x23219d){if(_0x23219d[_0x6558('0x33')]!==_0x6558('0x34')){var _0x48d27f={};_0x48d27f[_0x23219d['name']]={'$like':'%'+_0x13816f[_0x6558('0x26')][_0x6558('0x31')]+'%'};return _0x48d27f;}})});}_0x4fbef9=_[_0x6558('0x32')]({},_0x4fbef9,_0x13816f[_0x6558('0x35')]);var _0xc09c96={'where':_0x4fbef9['where']};return db[_0x6558('0x24')][_0x6558('0x16')](_0xc09c96)['then'](function(_0xacb6a){_0x166149['count']=_0xacb6a;if(_0x13816f[_0x6558('0x26')][_0x6558('0x36')]){_0x4fbef9[_0x6558('0x37')]=[{'all':!![]}];}return db[_0x6558('0x24')][_0x6558('0x38')](_0x4fbef9);})[_0x6558('0x1c')](function(_0xb74c05){_0x166149[_0x6558('0x39')]=_0xb74c05;return _0x166149;})[_0x6558('0x1c')](respondWithFilteredResult(_0x3c0489,_0x4fbef9))[_0x6558('0x3a')](handleError(_0x3c0489,null));};exports[_0x6558('0x3b')]=function(_0x3b8815,_0x16dfdf){var _0x4fc4bb={'raw':![],'where':{'id':_0x3b8815[_0x6558('0x3c')]['id']}},_0x312158={};_0x312158['model']=_[_0x6558('0x3d')](db[_0x6558('0x24')]['rawAttributes']);_0x312158[_0x6558('0x26')]=_[_0x6558('0x3d')](_0x3b8815[_0x6558('0x26')]);_0x312158[_0x6558('0x27')]=_[_0x6558('0x3e')](_0x312158[_0x6558('0x28')],_0x312158[_0x6558('0x26')]);_0x4fc4bb['attributes']=_[_0x6558('0x3e')](_0x312158[_0x6558('0x28')],qs[_0x6558('0x2a')](_0x3b8815[_0x6558('0x26')]['fields']));_0x4fc4bb[_0x6558('0x29')]=_0x4fc4bb[_0x6558('0x29')][_0x6558('0x2b')]?_0x4fc4bb['attributes']:_0x312158[_0x6558('0x28')];if(_0x3b8815[_0x6558('0x26')][_0x6558('0x36')]){_0x4fc4bb[_0x6558('0x37')]=[{'all':!![]}];}_0x4fc4bb=_['merge']({},_0x4fc4bb,_0x3b8815['options']);return db[_0x6558('0x24')]['find'](_0x4fc4bb)[_0x6558('0x1c')](handleEntityNotFound(_0x16dfdf,null))[_0x6558('0x1c')](respondWithResult(_0x16dfdf,null))[_0x6558('0x3a')](handleError(_0x16dfdf,null));};exports[_0x6558('0x3f')]=function(_0x1b6e2a,_0x290471){return db[_0x6558('0x24')][_0x6558('0x3f')](_0x1b6e2a[_0x6558('0x40')],{})['then'](respondWithResult(_0x290471,0xc9))[_0x6558('0x3a')](handleError(_0x290471,null));};exports['update']=function(_0x1013d9,_0x113646){if(_0x1013d9[_0x6558('0x40')]['id']){delete _0x1013d9['body']['id'];}return db[_0x6558('0x24')]['find']({'where':{'id':_0x1013d9['params']['id']}})['then'](handleEntityNotFound(_0x113646,null))[_0x6558('0x1c')](saveUpdates(_0x1013d9[_0x6558('0x40')],null))[_0x6558('0x1c')](respondWithResult(_0x113646,null))[_0x6558('0x3a')](handleError(_0x113646,null));};exports[_0x6558('0x41')]=function(_0x41f252,_0xfd050d){return db[_0x6558('0x24')]['find']({'where':{'id':_0x41f252[_0x6558('0x3c')]['id']}})['then'](handleEntityNotFound(_0xfd050d,null))[_0x6558('0x1c')](removeEntity(_0xfd050d,null))[_0x6558('0x3a')](handleError(_0xfd050d,null));};