c71bacf70754ff544acfed22eb949de9b1e6bc25
[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 _0x6802=['crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','end','status','json','count','offset','set','Content-Range','apply','reject','save','update','then','sendStatus','error','stack','name','send','index','Integration','rawAttributes','fieldName','type','map','query','keys','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','includeAll','include','findAll','rows','catch','show','options','find','create','body','destroy','params','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','lodash','squel'];(function(_0x7ebdc5,_0x410526){var _0x2443f9=function(_0x52955f){while(--_0x52955f){_0x7ebdc5['push'](_0x7ebdc5['shift']());}};_0x2443f9(++_0x410526);}(_0x6802,0x123));var _0x2680=function(_0x209941,_0x5c9988){_0x209941=_0x209941-0x0;var _0x1e8729=_0x6802[_0x209941];return _0x1e8729;};'use strict';var pdf=require(_0x2680('0x0'));var emlformat=require(_0x2680('0x1'));var rimraf=require(_0x2680('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2680('0x3'));var rp=require(_0x2680('0x4'));var moment=require(_0x2680('0x5'));var BPromise=require(_0x2680('0x6'));var Mustache=require('mustache');var util=require(_0x2680('0x7'));var path=require(_0x2680('0x8'));var sox=require(_0x2680('0x9'));var csv=require(_0x2680('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x2680('0xb'));var squel=require(_0x2680('0xc'));var crypto=require(_0x2680('0xd'));var jsforce=require(_0x2680('0xe'));var deskjs=require(_0x2680('0xf'));var toCsv=require(_0x2680('0xa'));var querystring=require('querystring');var Papa=require(_0x2680('0x10'));var Redis=require('ioredis');var authService=require(_0x2680('0x11'));var qs=require(_0x2680('0x12'));var as=require(_0x2680('0x13'));var hardwareService=require(_0x2680('0x14'));var logger=require(_0x2680('0x15'))(_0x2680('0x16'));var utils=require('../../config/utils');var config=require(_0x2680('0x17'));var licenseUtil=require(_0x2680('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1700d4,_0x509fc8){_0x509fc8=_0x509fc8||0xcc;return function(_0x554956){if(_0x554956){return _0x1700d4['sendStatus'](_0x509fc8);}return _0x1700d4['status'](_0x509fc8)[_0x2680('0x19')]();};}function respondWithResult(_0x1f5c66,_0x5914f5){_0x5914f5=_0x5914f5||0xc8;return function(_0x31fadc){if(_0x31fadc){return _0x1f5c66[_0x2680('0x1a')](_0x5914f5)[_0x2680('0x1b')](_0x31fadc);}};}function respondWithFilteredResult(_0x54ad04,_0x3f2856){return function(_0x14708d){if(_0x14708d){var _0xdfe87e=_0x14708d[_0x2680('0x1c')],_0x5349dc=_0x3f2856[_0x2680('0x1d')],_0x55e3d0=_0x3f2856[_0x2680('0x1d')]+_0x3f2856['limit'],_0x23130f;if(_0x55e3d0>=_0xdfe87e){_0x55e3d0=_0xdfe87e;_0x23130f=0xc8;}else{_0x23130f=0xce;}_0x54ad04['status'](_0x23130f);return _0x54ad04[_0x2680('0x1e')](_0x2680('0x1f'),_0x5349dc+'-'+_0x55e3d0+'/'+_0xdfe87e)['json'](_0x14708d);}return null;};}function patchUpdates(_0x1954b8){return function(_0x112b4f){try{jsonpatch[_0x2680('0x20')](_0x112b4f,_0x1954b8,!![]);}catch(_0x377081){return BPromise[_0x2680('0x21')](_0x377081);}return _0x112b4f[_0x2680('0x22')]();};}function saveUpdates(_0x309027,_0x27bef5){return function(_0x1c34c3){if(_0x1c34c3){return _0x1c34c3[_0x2680('0x23')](_0x309027)[_0x2680('0x24')](function(_0xb27632){return _0xb27632;});}return null;};}function removeEntity(_0x28ed93,_0x41fe20){return function(_0x597673){if(_0x597673){return _0x597673['destroy']()[_0x2680('0x24')](function(){_0x28ed93[_0x2680('0x1a')](0xcc)[_0x2680('0x19')]();});}};}function handleEntityNotFound(_0x35a151,_0x1068e1){return function(_0x2dcfe8){if(!_0x2dcfe8){_0x35a151[_0x2680('0x25')](0x194);}return _0x2dcfe8;};}function handleError(_0x3dedcb,_0x23137b){_0x23137b=_0x23137b||0x1f4;return function(_0x483705){logger[_0x2680('0x26')](_0x483705[_0x2680('0x27')]);if(_0x483705['name']){delete _0x483705[_0x2680('0x28')];}_0x3dedcb[_0x2680('0x1a')](_0x23137b)[_0x2680('0x29')](_0x483705);};}exports[_0x2680('0x2a')]=function(_0x3360db,_0x2fbd3c){var _0x1f2300={},_0x1e3208={},_0x12d25f={'count':0x0,'rows':[]};var _0x3be8e3=_['map'](db[_0x2680('0x2b')][_0x2680('0x2c')],function(_0x3fe14b){return{'name':_0x3fe14b[_0x2680('0x2d')],'type':_0x3fe14b[_0x2680('0x2e')]['key']};});_0x1e3208['model']=_[_0x2680('0x2f')](_0x3be8e3,_0x2680('0x28'));_0x1e3208[_0x2680('0x30')]=_[_0x2680('0x31')](_0x3360db[_0x2680('0x30')]);_0x1e3208[_0x2680('0x32')]=_[_0x2680('0x33')](_0x1e3208[_0x2680('0x34')],_0x1e3208[_0x2680('0x30')]);_0x1f2300['attributes']=_['intersection'](_0x1e3208[_0x2680('0x34')],qs['fields'](_0x3360db[_0x2680('0x30')]['fields']));_0x1f2300[_0x2680('0x35')]=_0x1f2300[_0x2680('0x35')][_0x2680('0x36')]?_0x1f2300['attributes']:_0x1e3208[_0x2680('0x34')];if(!_0x3360db['query'][_0x2680('0x37')](_0x2680('0x38'))){_0x1f2300[_0x2680('0x39')]=qs['limit'](_0x3360db['query']['limit']);_0x1f2300[_0x2680('0x1d')]=qs[_0x2680('0x1d')](_0x3360db[_0x2680('0x30')]['offset']);}_0x1f2300[_0x2680('0x3a')]=qs[_0x2680('0x3b')](_0x3360db[_0x2680('0x30')]['sort']);_0x1f2300[_0x2680('0x3c')]=qs[_0x2680('0x32')](_[_0x2680('0x3d')](_0x3360db[_0x2680('0x30')],_0x1e3208[_0x2680('0x32')]),_0x3be8e3);if(_0x3360db['query'][_0x2680('0x3e')]){_0x1f2300['where']=_[_0x2680('0x3f')](_0x1f2300['where'],{'$or':_[_0x2680('0x2f')](_0x3be8e3,function(_0x2d8b88){if(_0x2d8b88[_0x2680('0x2e')]!=='VIRTUAL'){var _0x4474aa={};_0x4474aa[_0x2d8b88[_0x2680('0x28')]]={'$like':'%'+_0x3360db[_0x2680('0x30')][_0x2680('0x3e')]+'%'};return _0x4474aa;}})});}_0x1f2300=_[_0x2680('0x3f')]({},_0x1f2300,_0x3360db['options']);var _0x1f0f89={'where':_0x1f2300[_0x2680('0x3c')]};return db[_0x2680('0x2b')]['count'](_0x1f0f89)[_0x2680('0x24')](function(_0x14d0fb){_0x12d25f[_0x2680('0x1c')]=_0x14d0fb;if(_0x3360db['query'][_0x2680('0x40')]){_0x1f2300[_0x2680('0x41')]=[{'all':!![]}];}return db[_0x2680('0x2b')][_0x2680('0x42')](_0x1f2300);})[_0x2680('0x24')](function(_0x3497eb){_0x12d25f[_0x2680('0x43')]=_0x3497eb;return _0x12d25f;})[_0x2680('0x24')](respondWithFilteredResult(_0x2fbd3c,_0x1f2300))[_0x2680('0x44')](handleError(_0x2fbd3c,null));};exports[_0x2680('0x45')]=function(_0x35ca7f,_0x50de39){var _0x2c5fe9={'raw':![],'where':{'id':_0x35ca7f['params']['id']}},_0xa0cd25={};_0xa0cd25[_0x2680('0x34')]=_[_0x2680('0x31')](db[_0x2680('0x2b')][_0x2680('0x2c')]);_0xa0cd25[_0x2680('0x30')]=_[_0x2680('0x31')](_0x35ca7f['query']);_0xa0cd25[_0x2680('0x32')]=_[_0x2680('0x33')](_0xa0cd25[_0x2680('0x34')],_0xa0cd25['query']);_0x2c5fe9[_0x2680('0x35')]=_[_0x2680('0x33')](_0xa0cd25[_0x2680('0x34')],qs['fields'](_0x35ca7f['query']['fields']));_0x2c5fe9[_0x2680('0x35')]=_0x2c5fe9['attributes'][_0x2680('0x36')]?_0x2c5fe9[_0x2680('0x35')]:_0xa0cd25[_0x2680('0x34')];if(_0x35ca7f[_0x2680('0x30')]['includeAll']){_0x2c5fe9[_0x2680('0x41')]=[{'all':!![]}];}_0x2c5fe9=_[_0x2680('0x3f')]({},_0x2c5fe9,_0x35ca7f[_0x2680('0x46')]);return db['Integration'][_0x2680('0x47')](_0x2c5fe9)[_0x2680('0x24')](handleEntityNotFound(_0x50de39,null))[_0x2680('0x24')](respondWithResult(_0x50de39,null))[_0x2680('0x44')](handleError(_0x50de39,null));};exports[_0x2680('0x48')]=function(_0x5726c0,_0x36f814){return db[_0x2680('0x2b')]['create'](_0x5726c0[_0x2680('0x49')],{})[_0x2680('0x24')](respondWithResult(_0x36f814,0xc9))[_0x2680('0x44')](handleError(_0x36f814,null));};exports[_0x2680('0x23')]=function(_0x4ff543,_0x8b8c57){if(_0x4ff543[_0x2680('0x49')]['id']){delete _0x4ff543[_0x2680('0x49')]['id'];}return db[_0x2680('0x2b')][_0x2680('0x47')]({'where':{'id':_0x4ff543['params']['id']}})[_0x2680('0x24')](handleEntityNotFound(_0x8b8c57,null))[_0x2680('0x24')](saveUpdates(_0x4ff543[_0x2680('0x49')],null))[_0x2680('0x24')](respondWithResult(_0x8b8c57,null))[_0x2680('0x44')](handleError(_0x8b8c57,null));};exports[_0x2680('0x4a')]=function(_0x423d3f,_0x3dbe10){return db[_0x2680('0x2b')][_0x2680('0x47')]({'where':{'id':_0x423d3f[_0x2680('0x4b')]['id']}})[_0x2680('0x24')](handleEntityNotFound(_0x3dbe10,null))[_0x2680('0x24')](removeEntity(_0x3dbe10,null))[_0x2680('0x44')](handleError(_0x3dbe10,null));};