cdc2504b6b88276dd542c201a9135a3755a1757d
[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 _0x1264=['intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','Integration','includeAll','include','findAll','rows','catch','show','params','rawAttributes','create','body','find','html-pdf','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','reject','save','update','destroy','then','error','stack','name','send','map','fieldName','type','key','model','query','keys','filters'];(function(_0x4eab4d,_0x1fbd49){var _0x3bffce=function(_0x1e4c66){while(--_0x1e4c66){_0x4eab4d['push'](_0x4eab4d['shift']());}};_0x3bffce(++_0x1fbd49);}(_0x1264,0x1af));var _0x4126=function(_0x4d2993,_0x1c9473){_0x4d2993=_0x4d2993-0x0;var _0x427374=_0x1264[_0x4d2993];return _0x427374;};'use strict';var pdf=require(_0x4126('0x0'));var emlformat=require(_0x4126('0x1'));var rimraf=require(_0x4126('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x4126('0x3'));var moment=require(_0x4126('0x4'));var BPromise=require(_0x4126('0x5'));var Mustache=require(_0x4126('0x6'));var util=require(_0x4126('0x7'));var path=require(_0x4126('0x8'));var sox=require(_0x4126('0x9'));var csv=require(_0x4126('0xa'));var ejs=require(_0x4126('0xb'));var fs=require('fs');var _=require(_0x4126('0xc'));var squel=require(_0x4126('0xd'));var crypto=require(_0x4126('0xe'));var jsforce=require(_0x4126('0xf'));var deskjs=require(_0x4126('0x10'));var toCsv=require(_0x4126('0xa'));var querystring=require(_0x4126('0x11'));var Papa=require(_0x4126('0x12'));var Redis=require(_0x4126('0x13'));var authService=require(_0x4126('0x14'));var qs=require(_0x4126('0x15'));var as=require(_0x4126('0x16'));var hardwareService=require(_0x4126('0x17'));var logger=require('../../config/logger')(_0x4126('0x18'));var utils=require(_0x4126('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x4126('0x1a'));var db=require(_0x4126('0x1b'))['db'];function respondWithStatusCode(_0x19fc1a,_0x37979d){_0x37979d=_0x37979d||0xcc;return function(_0x41fba8){if(_0x41fba8){return _0x19fc1a[_0x4126('0x1c')](_0x37979d);}return _0x19fc1a[_0x4126('0x1d')](_0x37979d)[_0x4126('0x1e')]();};}function respondWithResult(_0x4dc462,_0x50e750){_0x50e750=_0x50e750||0xc8;return function(_0x214cc7){if(_0x214cc7){return _0x4dc462[_0x4126('0x1d')](_0x50e750)['json'](_0x214cc7);}};}function respondWithFilteredResult(_0x4915cd,_0x5e37ed){return function(_0x52d751){if(_0x52d751){var _0x4980eb=_0x52d751[_0x4126('0x1f')],_0x62de4a=_0x5e37ed[_0x4126('0x20')],_0x1235f1=_0x5e37ed[_0x4126('0x20')]+_0x5e37ed[_0x4126('0x21')],_0x3ab245;if(_0x1235f1>=_0x4980eb){_0x1235f1=_0x4980eb;_0x3ab245=0xc8;}else{_0x3ab245=0xce;}_0x4915cd[_0x4126('0x1d')](_0x3ab245);return _0x4915cd[_0x4126('0x22')](_0x4126('0x23'),_0x62de4a+'-'+_0x1235f1+'/'+_0x4980eb)[_0x4126('0x24')](_0x52d751);}return null;};}function patchUpdates(_0x3c0158){return function(_0x8f17bc){try{jsonpatch[_0x4126('0x25')](_0x8f17bc,_0x3c0158,!![]);}catch(_0x5c9bcd){return BPromise[_0x4126('0x26')](_0x5c9bcd);}return _0x8f17bc[_0x4126('0x27')]();};}function saveUpdates(_0x5b2c7c,_0x230e68){return function(_0x328504){if(_0x328504){return _0x328504[_0x4126('0x28')](_0x5b2c7c)['then'](function(_0x559bd2){return _0x559bd2;});}return null;};}function removeEntity(_0x52446e,_0x30193b){return function(_0x2ebe24){if(_0x2ebe24){return _0x2ebe24[_0x4126('0x29')]()[_0x4126('0x2a')](function(){_0x52446e[_0x4126('0x1d')](0xcc)[_0x4126('0x1e')]();});}};}function handleEntityNotFound(_0x1885d2,_0x4d129b){return function(_0x136172){if(!_0x136172){_0x1885d2[_0x4126('0x1c')](0x194);}return _0x136172;};}function handleError(_0x31ec0b,_0x4d289b){_0x4d289b=_0x4d289b||0x1f4;return function(_0x29b07d){logger[_0x4126('0x2b')](_0x29b07d[_0x4126('0x2c')]);if(_0x29b07d[_0x4126('0x2d')]){delete _0x29b07d[_0x4126('0x2d')];}_0x31ec0b[_0x4126('0x1d')](_0x4d289b)[_0x4126('0x2e')](_0x29b07d);};}exports['index']=function(_0x54ec11,_0xff72f4){var _0x4b719f={},_0x1696eb={},_0x28173c={'count':0x0,'rows':[]};var _0x252549=_[_0x4126('0x2f')](db['Integration']['rawAttributes'],function(_0x2b72a6){return{'name':_0x2b72a6[_0x4126('0x30')],'type':_0x2b72a6[_0x4126('0x31')][_0x4126('0x32')]};});_0x1696eb[_0x4126('0x33')]=_[_0x4126('0x2f')](_0x252549,_0x4126('0x2d'));_0x1696eb[_0x4126('0x34')]=_[_0x4126('0x35')](_0x54ec11[_0x4126('0x34')]);_0x1696eb[_0x4126('0x36')]=_['intersection'](_0x1696eb['model'],_0x1696eb['query']);_0x4b719f['attributes']=_[_0x4126('0x37')](_0x1696eb[_0x4126('0x33')],qs[_0x4126('0x38')](_0x54ec11[_0x4126('0x34')][_0x4126('0x38')]));_0x4b719f[_0x4126('0x39')]=_0x4b719f[_0x4126('0x39')][_0x4126('0x3a')]?_0x4b719f[_0x4126('0x39')]:_0x1696eb[_0x4126('0x33')];if(!_0x54ec11[_0x4126('0x34')][_0x4126('0x3b')](_0x4126('0x3c'))){_0x4b719f['limit']=qs['limit'](_0x54ec11[_0x4126('0x34')]['limit']);_0x4b719f['offset']=qs[_0x4126('0x20')](_0x54ec11[_0x4126('0x34')][_0x4126('0x20')]);}_0x4b719f[_0x4126('0x3d')]=qs[_0x4126('0x3e')](_0x54ec11[_0x4126('0x34')][_0x4126('0x3e')]);_0x4b719f[_0x4126('0x3f')]=qs[_0x4126('0x36')](_[_0x4126('0x40')](_0x54ec11[_0x4126('0x34')],_0x1696eb[_0x4126('0x36')]),_0x252549);if(_0x54ec11[_0x4126('0x34')][_0x4126('0x41')]){_0x4b719f[_0x4126('0x3f')]=_[_0x4126('0x42')](_0x4b719f[_0x4126('0x3f')],{'$or':_[_0x4126('0x2f')](_0x252549,function(_0x49e89d){if(_0x49e89d[_0x4126('0x31')]!==_0x4126('0x43')){var _0x4c0131={};_0x4c0131[_0x49e89d['name']]={'$like':'%'+_0x54ec11[_0x4126('0x34')][_0x4126('0x41')]+'%'};return _0x4c0131;}})});}_0x4b719f=_[_0x4126('0x42')]({},_0x4b719f,_0x54ec11[_0x4126('0x44')]);var _0x217427={'where':_0x4b719f[_0x4126('0x3f')]};return db[_0x4126('0x45')][_0x4126('0x1f')](_0x217427)[_0x4126('0x2a')](function(_0x7fe64a){_0x28173c['count']=_0x7fe64a;if(_0x54ec11[_0x4126('0x34')][_0x4126('0x46')]){_0x4b719f[_0x4126('0x47')]=[{'all':!![]}];}return db[_0x4126('0x45')][_0x4126('0x48')](_0x4b719f);})[_0x4126('0x2a')](function(_0x550650){_0x28173c[_0x4126('0x49')]=_0x550650;return _0x28173c;})[_0x4126('0x2a')](respondWithFilteredResult(_0xff72f4,_0x4b719f))[_0x4126('0x4a')](handleError(_0xff72f4,null));};exports[_0x4126('0x4b')]=function(_0x3893a9,_0xbd69ae){var _0x5c570e={'raw':![],'where':{'id':_0x3893a9[_0x4126('0x4c')]['id']}},_0x4679e1={};_0x4679e1[_0x4126('0x33')]=_[_0x4126('0x35')](db[_0x4126('0x45')][_0x4126('0x4d')]);_0x4679e1[_0x4126('0x34')]=_[_0x4126('0x35')](_0x3893a9['query']);_0x4679e1[_0x4126('0x36')]=_[_0x4126('0x37')](_0x4679e1[_0x4126('0x33')],_0x4679e1[_0x4126('0x34')]);_0x5c570e[_0x4126('0x39')]=_[_0x4126('0x37')](_0x4679e1['model'],qs['fields'](_0x3893a9[_0x4126('0x34')]['fields']));_0x5c570e[_0x4126('0x39')]=_0x5c570e[_0x4126('0x39')][_0x4126('0x3a')]?_0x5c570e[_0x4126('0x39')]:_0x4679e1[_0x4126('0x33')];if(_0x3893a9['query']['includeAll']){_0x5c570e[_0x4126('0x47')]=[{'all':!![]}];}_0x5c570e=_[_0x4126('0x42')]({},_0x5c570e,_0x3893a9[_0x4126('0x44')]);return db[_0x4126('0x45')]['find'](_0x5c570e)[_0x4126('0x2a')](handleEntityNotFound(_0xbd69ae,null))['then'](respondWithResult(_0xbd69ae,null))[_0x4126('0x4a')](handleError(_0xbd69ae,null));};exports[_0x4126('0x4e')]=function(_0x5ae6f7,_0x562d4b){return db[_0x4126('0x45')][_0x4126('0x4e')](_0x5ae6f7[_0x4126('0x4f')],{})[_0x4126('0x2a')](respondWithResult(_0x562d4b,0xc9))['catch'](handleError(_0x562d4b,null));};exports[_0x4126('0x28')]=function(_0x81e7d4,_0x23ff3f){if(_0x81e7d4[_0x4126('0x4f')]['id']){delete _0x81e7d4[_0x4126('0x4f')]['id'];}return db[_0x4126('0x45')][_0x4126('0x50')]({'where':{'id':_0x81e7d4[_0x4126('0x4c')]['id']}})['then'](handleEntityNotFound(_0x23ff3f,null))[_0x4126('0x2a')](saveUpdates(_0x81e7d4['body'],null))[_0x4126('0x2a')](respondWithResult(_0x23ff3f,null))[_0x4126('0x4a')](handleError(_0x23ff3f,null));};exports[_0x4126('0x29')]=function(_0x15c9fd,_0x5da3cf){return db[_0x4126('0x45')][_0x4126('0x50')]({'where':{'id':_0x15c9fd[_0x4126('0x4c')]['id']}})[_0x4126('0x2a')](handleEntityNotFound(_0x5da3cf,null))[_0x4126('0x2a')](removeEntity(_0x5da3cf,null))[_0x4126('0x4a')](handleError(_0x5da3cf,null));};