e879e52d51b5d2fa4d1990012bd3465527509f24
[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 _0x0e5b=['options','include','findAll','rows','catch','keys','includeAll','create','body','params','find','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','ejs','lodash','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','set','apply','save','update','then','destroy','error','stack','name','send','index','map','Integration','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','where','pick','filter','merge'];(function(_0x229b9d,_0x526510){var _0x1c6715=function(_0x20af2c){while(--_0x20af2c){_0x229b9d['push'](_0x229b9d['shift']());}};_0x1c6715(++_0x526510);}(_0x0e5b,0x9d));var _0xb0e5=function(_0x59d3bb,_0x178c84){_0x59d3bb=_0x59d3bb-0x0;var _0x53631c=_0x0e5b[_0x59d3bb];return _0x53631c;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xb0e5('0x0'));var rimraf=require(_0xb0e5('0x1'));var zipdir=require(_0xb0e5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb0e5('0x3'));var moment=require(_0xb0e5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xb0e5('0x5'));var util=require(_0xb0e5('0x6'));var path=require(_0xb0e5('0x7'));var sox=require(_0xb0e5('0x8'));var csv=require('to-csv');var ejs=require(_0xb0e5('0x9'));var fs=require('fs');var _=require(_0xb0e5('0xa'));var squel=require('squel');var crypto=require(_0xb0e5('0xb'));var jsforce=require(_0xb0e5('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xb0e5('0xd'));var Redis=require(_0xb0e5('0xe'));var authService=require(_0xb0e5('0xf'));var qs=require(_0xb0e5('0x10'));var as=require(_0xb0e5('0x11'));var hardwareService=require(_0xb0e5('0x12'));var logger=require(_0xb0e5('0x13'))(_0xb0e5('0x14'));var utils=require(_0xb0e5('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xb0e5('0x16'));var db=require(_0xb0e5('0x17'))['db'];function respondWithStatusCode(_0x32e3cd,_0x49f6fb){_0x49f6fb=_0x49f6fb||0xcc;return function(_0x108e73){if(_0x108e73){return _0x32e3cd[_0xb0e5('0x18')](_0x49f6fb);}return _0x32e3cd[_0xb0e5('0x19')](_0x49f6fb)[_0xb0e5('0x1a')]();};}function respondWithResult(_0x493f1d,_0x490a7c){_0x490a7c=_0x490a7c||0xc8;return function(_0x4e1516){if(_0x4e1516){return _0x493f1d['status'](_0x490a7c)[_0xb0e5('0x1b')](_0x4e1516);}};}function respondWithFilteredResult(_0x57171e,_0x41dc82){return function(_0x5b6d14){if(_0x5b6d14){var _0x4a76b2=_0x5b6d14[_0xb0e5('0x1c')],_0x184443=_0x41dc82[_0xb0e5('0x1d')],_0x3c6bc5=_0x41dc82['offset']+_0x41dc82['limit'],_0x1a0cc5;if(_0x3c6bc5>=_0x4a76b2){_0x3c6bc5=_0x4a76b2;_0x1a0cc5=0xc8;}else{_0x1a0cc5=0xce;}_0x57171e['status'](_0x1a0cc5);return _0x57171e[_0xb0e5('0x1e')]('Content-Range',_0x184443+'-'+_0x3c6bc5+'/'+_0x4a76b2)['json'](_0x5b6d14);}return null;};}function patchUpdates(_0x1a6b46){return function(_0x35a9e0){try{jsonpatch[_0xb0e5('0x1f')](_0x35a9e0,_0x1a6b46,!![]);}catch(_0x265499){return BPromise['reject'](_0x265499);}return _0x35a9e0[_0xb0e5('0x20')]();};}function saveUpdates(_0x2f7a73,_0x5da6f2){return function(_0x1a89f8){if(_0x1a89f8){return _0x1a89f8[_0xb0e5('0x21')](_0x2f7a73)[_0xb0e5('0x22')](function(_0x209a12){return _0x209a12;});}return null;};}function removeEntity(_0x508370,_0x205996){return function(_0x27400b){if(_0x27400b){return _0x27400b[_0xb0e5('0x23')]()[_0xb0e5('0x22')](function(){_0x508370[_0xb0e5('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4cfbdf,_0x1691ca){return function(_0x4a9bf8){if(!_0x4a9bf8){_0x4cfbdf[_0xb0e5('0x18')](0x194);}return _0x4a9bf8;};}function handleError(_0x452bfc,_0xe0a6dd){_0xe0a6dd=_0xe0a6dd||0x1f4;return function(_0xec456e){logger[_0xb0e5('0x24')](_0xec456e[_0xb0e5('0x25')]);if(_0xec456e[_0xb0e5('0x26')]){delete _0xec456e['name'];}_0x452bfc['status'](_0xe0a6dd)[_0xb0e5('0x27')](_0xec456e);};}exports[_0xb0e5('0x28')]=function(_0x13553b,_0x228eb2){var _0x44fe4d={},_0x99ff81={},_0x560f84={'count':0x0,'rows':[]};var _0x353306=_[_0xb0e5('0x29')](db[_0xb0e5('0x2a')][_0xb0e5('0x2b')],function(_0x2dd470){return{'name':_0x2dd470[_0xb0e5('0x2c')],'type':_0x2dd470[_0xb0e5('0x2d')][_0xb0e5('0x2e')]};});_0x99ff81[_0xb0e5('0x2f')]=_['map'](_0x353306,_0xb0e5('0x26'));_0x99ff81[_0xb0e5('0x30')]=_['keys'](_0x13553b[_0xb0e5('0x30')]);_0x99ff81[_0xb0e5('0x31')]=_[_0xb0e5('0x32')](_0x99ff81[_0xb0e5('0x2f')],_0x99ff81[_0xb0e5('0x30')]);_0x44fe4d[_0xb0e5('0x33')]=_[_0xb0e5('0x32')](_0x99ff81[_0xb0e5('0x2f')],qs['fields'](_0x13553b[_0xb0e5('0x30')][_0xb0e5('0x34')]));_0x44fe4d['attributes']=_0x44fe4d[_0xb0e5('0x33')][_0xb0e5('0x35')]?_0x44fe4d[_0xb0e5('0x33')]:_0x99ff81[_0xb0e5('0x2f')];if(!_0x13553b['query'][_0xb0e5('0x36')](_0xb0e5('0x37'))){_0x44fe4d[_0xb0e5('0x38')]=qs['limit'](_0x13553b[_0xb0e5('0x30')]['limit']);_0x44fe4d[_0xb0e5('0x1d')]=qs['offset'](_0x13553b['query'][_0xb0e5('0x1d')]);}_0x44fe4d[_0xb0e5('0x39')]=qs['sort'](_0x13553b[_0xb0e5('0x30')]['sort']);_0x44fe4d[_0xb0e5('0x3a')]=qs[_0xb0e5('0x31')](_[_0xb0e5('0x3b')](_0x13553b[_0xb0e5('0x30')],_0x99ff81[_0xb0e5('0x31')]),_0x353306);if(_0x13553b[_0xb0e5('0x30')][_0xb0e5('0x3c')]){_0x44fe4d[_0xb0e5('0x3a')]=_['merge'](_0x44fe4d[_0xb0e5('0x3a')],{'$or':_['map'](_0x353306,function(_0x50627a){if(_0x50627a[_0xb0e5('0x2d')]!=='VIRTUAL'){var _0x1ed2b1={};_0x1ed2b1[_0x50627a[_0xb0e5('0x26')]]={'$like':'%'+_0x13553b['query'][_0xb0e5('0x3c')]+'%'};return _0x1ed2b1;}})});}_0x44fe4d=_[_0xb0e5('0x3d')]({},_0x44fe4d,_0x13553b[_0xb0e5('0x3e')]);var _0x52aa12={'where':_0x44fe4d[_0xb0e5('0x3a')]};return db[_0xb0e5('0x2a')][_0xb0e5('0x1c')](_0x52aa12)['then'](function(_0x4defab){_0x560f84[_0xb0e5('0x1c')]=_0x4defab;if(_0x13553b[_0xb0e5('0x30')]['includeAll']){_0x44fe4d[_0xb0e5('0x3f')]=[{'all':!![]}];}return db[_0xb0e5('0x2a')][_0xb0e5('0x40')](_0x44fe4d);})[_0xb0e5('0x22')](function(_0x3c1afc){_0x560f84[_0xb0e5('0x41')]=_0x3c1afc;return _0x560f84;})[_0xb0e5('0x22')](respondWithFilteredResult(_0x228eb2,_0x44fe4d))[_0xb0e5('0x42')](handleError(_0x228eb2,null));};exports['show']=function(_0x113af2,_0xca4156){var _0x1d30c3={'raw':![],'where':{'id':_0x113af2['params']['id']}},_0x38170e={};_0x38170e[_0xb0e5('0x2f')]=_[_0xb0e5('0x43')](db[_0xb0e5('0x2a')][_0xb0e5('0x2b')]);_0x38170e[_0xb0e5('0x30')]=_[_0xb0e5('0x43')](_0x113af2[_0xb0e5('0x30')]);_0x38170e[_0xb0e5('0x31')]=_[_0xb0e5('0x32')](_0x38170e['model'],_0x38170e['query']);_0x1d30c3[_0xb0e5('0x33')]=_[_0xb0e5('0x32')](_0x38170e['model'],qs['fields'](_0x113af2[_0xb0e5('0x30')]['fields']));_0x1d30c3[_0xb0e5('0x33')]=_0x1d30c3[_0xb0e5('0x33')][_0xb0e5('0x35')]?_0x1d30c3[_0xb0e5('0x33')]:_0x38170e[_0xb0e5('0x2f')];if(_0x113af2[_0xb0e5('0x30')][_0xb0e5('0x44')]){_0x1d30c3[_0xb0e5('0x3f')]=[{'all':!![]}];}_0x1d30c3=_[_0xb0e5('0x3d')]({},_0x1d30c3,_0x113af2[_0xb0e5('0x3e')]);return db['Integration']['find'](_0x1d30c3)[_0xb0e5('0x22')](handleEntityNotFound(_0xca4156,null))[_0xb0e5('0x22')](respondWithResult(_0xca4156,null))[_0xb0e5('0x42')](handleError(_0xca4156,null));};exports[_0xb0e5('0x45')]=function(_0x6a704,_0x4e6646){return db[_0xb0e5('0x2a')][_0xb0e5('0x45')](_0x6a704[_0xb0e5('0x46')],{})['then'](respondWithResult(_0x4e6646,0xc9))[_0xb0e5('0x42')](handleError(_0x4e6646,null));};exports[_0xb0e5('0x21')]=function(_0x4083d5,_0x1ba593){if(_0x4083d5[_0xb0e5('0x46')]['id']){delete _0x4083d5[_0xb0e5('0x46')]['id'];}return db['Integration']['find']({'where':{'id':_0x4083d5[_0xb0e5('0x47')]['id']}})[_0xb0e5('0x22')](handleEntityNotFound(_0x1ba593,null))[_0xb0e5('0x22')](saveUpdates(_0x4083d5[_0xb0e5('0x46')],null))[_0xb0e5('0x22')](respondWithResult(_0x1ba593,null))[_0xb0e5('0x42')](handleError(_0x1ba593,null));};exports[_0xb0e5('0x23')]=function(_0x5d4a0d,_0x598ee2){return db[_0xb0e5('0x2a')][_0xb0e5('0x48')]({'where':{'id':_0x5d4a0d[_0xb0e5('0x47')]['id']}})[_0xb0e5('0x22')](handleEntityNotFound(_0x598ee2,null))[_0xb0e5('0x22')](removeEntity(_0x598ee2,null))[_0xb0e5('0x42')](handleError(_0x598ee2,null));};