Built motion from commit (unavailable).|2.4.18
[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 _0x47d0=['then','destroy','error','stack','name','index','map','Integration','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','pick','where','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','merge','find','create','body','update','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','squel','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','json','save'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x47d0,0xfb));var _0x047d=function(_0x4af685,_0x1c0969){_0x4af685=_0x4af685-0x0;var _0x5f2e96=_0x47d0[_0x4af685];return _0x5f2e96;};'use strict';var pdf=require(_0x047d('0x0'));var emlformat=require(_0x047d('0x1'));var rimraf=require(_0x047d('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x047d('0x3'));var rp=require(_0x047d('0x4'));var moment=require(_0x047d('0x5'));var BPromise=require(_0x047d('0x6'));var Mustache=require(_0x047d('0x7'));var util=require(_0x047d('0x8'));var path=require(_0x047d('0x9'));var sox=require('sox');var csv=require(_0x047d('0xa'));var ejs=require(_0x047d('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0x047d('0xc'));var crypto=require(_0x047d('0xd'));var jsforce=require(_0x047d('0xe'));var deskjs=require(_0x047d('0xf'));var toCsv=require(_0x047d('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x047d('0x10'));var qs=require(_0x047d('0x11'));var as=require(_0x047d('0x12'));var hardwareService=require(_0x047d('0x13'));var logger=require(_0x047d('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x047d('0x15'));var db=require(_0x047d('0x16'))['db'];function respondWithStatusCode(_0x169269,_0x2e9672){_0x2e9672=_0x2e9672||0xcc;return function(_0x4eae61){if(_0x4eae61){return _0x169269[_0x047d('0x17')](_0x2e9672);}return _0x169269[_0x047d('0x18')](_0x2e9672)[_0x047d('0x19')]();};}function respondWithResult(_0x29b836,_0x5306eb){_0x5306eb=_0x5306eb||0xc8;return function(_0x1f6104){if(_0x1f6104){return _0x29b836[_0x047d('0x18')](_0x5306eb)['json'](_0x1f6104);}};}function respondWithFilteredResult(_0xf007ea,_0x34878a){return function(_0x5f2a95){if(_0x5f2a95){var _0x375ebe=_0x5f2a95[_0x047d('0x1a')],_0x2539c4=_0x34878a['offset'],_0x223e0c=_0x34878a[_0x047d('0x1b')]+_0x34878a[_0x047d('0x1c')],_0x239410;if(_0x223e0c>=_0x375ebe){_0x223e0c=_0x375ebe;_0x239410=0xc8;}else{_0x239410=0xce;}_0xf007ea[_0x047d('0x18')](_0x239410);return _0xf007ea[_0x047d('0x1d')](_0x047d('0x1e'),_0x2539c4+'-'+_0x223e0c+'/'+_0x375ebe)[_0x047d('0x1f')](_0x5f2a95);}return null;};}function patchUpdates(_0x4e465e){return function(_0x2bbf40){try{jsonpatch['apply'](_0x2bbf40,_0x4e465e,!![]);}catch(_0x17feb9){return BPromise['reject'](_0x17feb9);}return _0x2bbf40[_0x047d('0x20')]();};}function saveUpdates(_0x192a30,_0x2dac4b){return function(_0x547972){if(_0x547972){return _0x547972['update'](_0x192a30)[_0x047d('0x21')](function(_0x12fb6d){return _0x12fb6d;});}return null;};}function removeEntity(_0x957746,_0x4a9eb8){return function(_0x3153bb){if(_0x3153bb){return _0x3153bb[_0x047d('0x22')]()['then'](function(){_0x957746['status'](0xcc)[_0x047d('0x19')]();});}};}function handleEntityNotFound(_0x1d475c,_0x3961bc){return function(_0x271beb){if(!_0x271beb){_0x1d475c[_0x047d('0x17')](0x194);}return _0x271beb;};}function handleError(_0x52f85c,_0x28dcaf){_0x28dcaf=_0x28dcaf||0x1f4;return function(_0x413a77){logger[_0x047d('0x23')](_0x413a77[_0x047d('0x24')]);if(_0x413a77[_0x047d('0x25')]){delete _0x413a77['name'];}_0x52f85c[_0x047d('0x18')](_0x28dcaf)['send'](_0x413a77);};}exports[_0x047d('0x26')]=function(_0xf4e17e,_0x7f18d4){var _0x36f3c0={},_0xdd5d5c={},_0x4ced42={'count':0x0,'rows':[]};var _0x212743=_[_0x047d('0x27')](db[_0x047d('0x28')][_0x047d('0x29')],function(_0x589b2b){return{'name':_0x589b2b['fieldName'],'type':_0x589b2b[_0x047d('0x2a')][_0x047d('0x2b')]};});_0xdd5d5c[_0x047d('0x2c')]=_[_0x047d('0x27')](_0x212743,'name');_0xdd5d5c[_0x047d('0x2d')]=_['keys'](_0xf4e17e['query']);_0xdd5d5c[_0x047d('0x2e')]=_[_0x047d('0x2f')](_0xdd5d5c[_0x047d('0x2c')],_0xdd5d5c[_0x047d('0x2d')]);_0x36f3c0[_0x047d('0x30')]=_[_0x047d('0x2f')](_0xdd5d5c['model'],qs[_0x047d('0x31')](_0xf4e17e['query'][_0x047d('0x31')]));_0x36f3c0['attributes']=_0x36f3c0[_0x047d('0x30')][_0x047d('0x32')]?_0x36f3c0[_0x047d('0x30')]:_0xdd5d5c['model'];if(!_0xf4e17e['query'][_0x047d('0x33')]('nolimit')){_0x36f3c0['limit']=qs[_0x047d('0x1c')](_0xf4e17e[_0x047d('0x2d')][_0x047d('0x1c')]);_0x36f3c0['offset']=qs[_0x047d('0x1b')](_0xf4e17e[_0x047d('0x2d')][_0x047d('0x1b')]);}_0x36f3c0[_0x047d('0x34')]=qs[_0x047d('0x35')](_0xf4e17e['query'][_0x047d('0x35')]);_0x36f3c0['where']=qs[_0x047d('0x2e')](_[_0x047d('0x36')](_0xf4e17e[_0x047d('0x2d')],_0xdd5d5c['filters']));if(_0xf4e17e[_0x047d('0x2d')]['filter']){_0x36f3c0['where']=_['merge'](_0x36f3c0[_0x047d('0x37')],{'$or':_[_0x047d('0x27')](_0x212743,function(_0x3cf0c6){if(_0x3cf0c6[_0x047d('0x2a')]!==_0x047d('0x38')){var _0x20e37a={};_0x20e37a[_0x3cf0c6[_0x047d('0x25')]]={'$like':'%'+_0xf4e17e[_0x047d('0x2d')]['filter']+'%'};return _0x20e37a;}})});}_0x36f3c0=_['merge']({},_0x36f3c0,_0xf4e17e[_0x047d('0x39')]);var _0x57e5a8={'where':_0x36f3c0[_0x047d('0x37')]};return db[_0x047d('0x28')][_0x047d('0x1a')](_0x57e5a8)[_0x047d('0x21')](function(_0x5c3fcb){_0x4ced42[_0x047d('0x1a')]=_0x5c3fcb;if(_0xf4e17e['query'][_0x047d('0x3a')]){_0x36f3c0[_0x047d('0x3b')]=[{'all':!![]}];}return db[_0x047d('0x28')][_0x047d('0x3c')](_0x36f3c0);})[_0x047d('0x21')](function(_0x58f1c5){_0x4ced42[_0x047d('0x3d')]=_0x58f1c5;return _0x4ced42;})[_0x047d('0x21')](respondWithFilteredResult(_0x7f18d4,_0x36f3c0))[_0x047d('0x3e')](handleError(_0x7f18d4,null));};exports[_0x047d('0x3f')]=function(_0x3e655b,_0x4fd07e){var _0x472190={'raw':![],'where':{'id':_0x3e655b[_0x047d('0x40')]['id']}},_0x495380={};_0x495380[_0x047d('0x2c')]=_[_0x047d('0x41')](db[_0x047d('0x28')][_0x047d('0x29')]);_0x495380[_0x047d('0x2d')]=_[_0x047d('0x41')](_0x3e655b['query']);_0x495380[_0x047d('0x2e')]=_['intersection'](_0x495380[_0x047d('0x2c')],_0x495380[_0x047d('0x2d')]);_0x472190[_0x047d('0x30')]=_[_0x047d('0x2f')](_0x495380[_0x047d('0x2c')],qs[_0x047d('0x31')](_0x3e655b[_0x047d('0x2d')][_0x047d('0x31')]));_0x472190[_0x047d('0x30')]=_0x472190['attributes']['length']?_0x472190[_0x047d('0x30')]:_0x495380[_0x047d('0x2c')];if(_0x3e655b['query'][_0x047d('0x3a')]){_0x472190['include']=[{'all':!![]}];}_0x472190=_[_0x047d('0x42')]({},_0x472190,_0x3e655b[_0x047d('0x39')]);return db[_0x047d('0x28')][_0x047d('0x43')](_0x472190)[_0x047d('0x21')](handleEntityNotFound(_0x4fd07e,null))[_0x047d('0x21')](respondWithResult(_0x4fd07e,null))[_0x047d('0x3e')](handleError(_0x4fd07e,null));};exports[_0x047d('0x44')]=function(_0x1d42ab,_0x55ad21){return db[_0x047d('0x28')][_0x047d('0x44')](_0x1d42ab[_0x047d('0x45')],{})['then'](respondWithResult(_0x55ad21,0xc9))['catch'](handleError(_0x55ad21,null));};exports[_0x047d('0x46')]=function(_0x20aba1,_0x4472c2){if(_0x20aba1[_0x047d('0x45')]['id']){delete _0x20aba1[_0x047d('0x45')]['id'];}return db['Integration'][_0x047d('0x43')]({'where':{'id':_0x20aba1[_0x047d('0x40')]['id']}})[_0x047d('0x21')](handleEntityNotFound(_0x4472c2,null))['then'](saveUpdates(_0x20aba1[_0x047d('0x45')],null))[_0x047d('0x21')](respondWithResult(_0x4472c2,null))[_0x047d('0x3e')](handleError(_0x4472c2,null));};exports['destroy']=function(_0x3636bd,_0xa396){return db['Integration']['find']({'where':{'id':_0x3636bd[_0x047d('0x40')]['id']}})[_0x047d('0x21')](handleEntityNotFound(_0xa396,null))['then'](removeEntity(_0xa396,null))[_0x047d('0x3e')](handleError(_0xa396,null));};