ed41eb00f153a81e2c01d3590f318f48a6bbc9bb
[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 _0x5fbb=['then','destroy','sendStatus','error','name','index','map','Integration','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','show','params','length','find','catch','create','body','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','status','end','json','count','offset','set','apply','reject','save'];(function(_0x5129b3,_0x34d5a8){var _0x1f7d11=function(_0x8075f9){while(--_0x8075f9){_0x5129b3['push'](_0x5129b3['shift']());}};_0x1f7d11(++_0x34d5a8);}(_0x5fbb,0x6e));var _0xb5fb=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x5fbb[_0x502c7d];return _0x30b7ed;};'use strict';var pdf=require(_0xb5fb('0x0'));var emlformat=require(_0xb5fb('0x1'));var rimraf=require(_0xb5fb('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb5fb('0x3'));var rp=require(_0xb5fb('0x4'));var moment=require(_0xb5fb('0x5'));var BPromise=require(_0xb5fb('0x6'));var Mustache=require(_0xb5fb('0x7'));var util=require(_0xb5fb('0x8'));var path=require(_0xb5fb('0x9'));var sox=require(_0xb5fb('0xa'));var csv=require(_0xb5fb('0xb'));var ejs=require(_0xb5fb('0xc'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0xb5fb('0xd'));var jsforce=require(_0xb5fb('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xb5fb('0xb'));var querystring=require(_0xb5fb('0xf'));var Papa=require(_0xb5fb('0x10'));var Redis=require(_0xb5fb('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xb5fb('0x12'));var as=require(_0xb5fb('0x13'));var hardwareService=require(_0xb5fb('0x14'));var logger=require(_0xb5fb('0x15'))(_0xb5fb('0x16'));var utils=require(_0xb5fb('0x17'));var config=require('../../config/environment');var db=require(_0xb5fb('0x18'))['db'];function respondWithStatusCode(_0x5a9292,_0x3422a3){_0x3422a3=_0x3422a3||0xcc;return function(_0x3b1e35){if(_0x3b1e35){return _0x5a9292['sendStatus'](_0x3422a3);}return _0x5a9292[_0xb5fb('0x19')](_0x3422a3)[_0xb5fb('0x1a')]();};}function respondWithResult(_0x3255a4,_0x3d3872){_0x3d3872=_0x3d3872||0xc8;return function(_0x502b42){if(_0x502b42){return _0x3255a4[_0xb5fb('0x19')](_0x3d3872)[_0xb5fb('0x1b')](_0x502b42);}};}function respondWithFilteredResult(_0xbdd6ec,_0x1c2568){return function(_0x95ce7d){if(_0x95ce7d){var _0x4ae846=_0x95ce7d[_0xb5fb('0x1c')],_0x1ef122=_0x1c2568[_0xb5fb('0x1d')],_0x50a0ec=_0x1c2568[_0xb5fb('0x1d')]+_0x1c2568['limit'],_0x3db4a2;if(_0x50a0ec>=_0x4ae846){_0x50a0ec=_0x4ae846;_0x3db4a2=0xc8;}else{_0x3db4a2=0xce;}_0xbdd6ec[_0xb5fb('0x19')](_0x3db4a2);return _0xbdd6ec[_0xb5fb('0x1e')]('Content-Range',_0x1ef122+'-'+_0x50a0ec+'/'+_0x4ae846)[_0xb5fb('0x1b')](_0x95ce7d);}return null;};}function patchUpdates(_0x1a7e53){return function(_0x18f2ab){try{jsonpatch[_0xb5fb('0x1f')](_0x18f2ab,_0x1a7e53,!![]);}catch(_0x15e8f2){return BPromise[_0xb5fb('0x20')](_0x15e8f2);}return _0x18f2ab[_0xb5fb('0x21')]();};}function saveUpdates(_0x1e0a16,_0x5b703c){return function(_0x451bd9){if(_0x451bd9){return _0x451bd9['update'](_0x1e0a16)[_0xb5fb('0x22')](function(_0xa7c343){return _0xa7c343;});}return null;};}function removeEntity(_0xd60d7,_0x24915c){return function(_0x5ccd50){if(_0x5ccd50){return _0x5ccd50[_0xb5fb('0x23')]()['then'](function(){_0xd60d7[_0xb5fb('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3204a2,_0x3a451c){return function(_0x1cdaaa){if(!_0x1cdaaa){_0x3204a2[_0xb5fb('0x24')](0x194);}return _0x1cdaaa;};}function handleError(_0x37f306,_0x3cb37c){_0x3cb37c=_0x3cb37c||0x1f4;return function(_0x2bfb3d){logger[_0xb5fb('0x25')](_0x2bfb3d['stack']);if(_0x2bfb3d[_0xb5fb('0x26')]){delete _0x2bfb3d[_0xb5fb('0x26')];}_0x37f306[_0xb5fb('0x19')](_0x3cb37c)['send'](_0x2bfb3d);};}exports[_0xb5fb('0x27')]=function(_0x459583,_0x2cdbf1){var _0x4114ef={},_0x5490b2={},_0x58175d={'count':0x0,'rows':[]};var _0x2455f4=_[_0xb5fb('0x28')](db[_0xb5fb('0x29')][_0xb5fb('0x2a')],function(_0x2fac95){return{'name':_0x2fac95['fieldName'],'type':_0x2fac95[_0xb5fb('0x2b')][_0xb5fb('0x2c')]};});_0x5490b2[_0xb5fb('0x2d')]=_[_0xb5fb('0x28')](_0x2455f4,_0xb5fb('0x26'));_0x5490b2[_0xb5fb('0x2e')]=_[_0xb5fb('0x2f')](_0x459583[_0xb5fb('0x2e')]);_0x5490b2[_0xb5fb('0x30')]=_[_0xb5fb('0x31')](_0x5490b2[_0xb5fb('0x2d')],_0x5490b2[_0xb5fb('0x2e')]);_0x4114ef[_0xb5fb('0x32')]=_[_0xb5fb('0x31')](_0x5490b2[_0xb5fb('0x2d')],qs[_0xb5fb('0x33')](_0x459583[_0xb5fb('0x2e')][_0xb5fb('0x33')]));_0x4114ef['attributes']=_0x4114ef[_0xb5fb('0x32')]['length']?_0x4114ef[_0xb5fb('0x32')]:_0x5490b2[_0xb5fb('0x2d')];if(!_0x459583[_0xb5fb('0x2e')][_0xb5fb('0x34')](_0xb5fb('0x35'))){_0x4114ef[_0xb5fb('0x36')]=qs[_0xb5fb('0x36')](_0x459583[_0xb5fb('0x2e')][_0xb5fb('0x36')]);_0x4114ef[_0xb5fb('0x1d')]=qs[_0xb5fb('0x1d')](_0x459583[_0xb5fb('0x2e')]['offset']);}_0x4114ef[_0xb5fb('0x37')]=qs['sort'](_0x459583[_0xb5fb('0x2e')]['sort']);_0x4114ef[_0xb5fb('0x38')]=qs[_0xb5fb('0x30')](_[_0xb5fb('0x39')](_0x459583['query'],_0x5490b2[_0xb5fb('0x30')]));if(_0x459583[_0xb5fb('0x2e')][_0xb5fb('0x3a')]){_0x4114ef[_0xb5fb('0x38')]=_[_0xb5fb('0x3b')](_0x4114ef[_0xb5fb('0x38')],{'$or':_['map'](_0x2455f4,function(_0x57fe1a){if(_0x57fe1a[_0xb5fb('0x2b')]!==_0xb5fb('0x3c')){var _0x175ee6={};_0x175ee6[_0x57fe1a[_0xb5fb('0x26')]]={'$like':'%'+_0x459583[_0xb5fb('0x2e')]['filter']+'%'};return _0x175ee6;}})});}_0x4114ef=_[_0xb5fb('0x3b')]({},_0x4114ef,_0x459583[_0xb5fb('0x3d')]);var _0x6c75b0={'where':_0x4114ef[_0xb5fb('0x38')]};return db[_0xb5fb('0x29')][_0xb5fb('0x1c')](_0x6c75b0)[_0xb5fb('0x22')](function(_0x3d2a5e){_0x58175d[_0xb5fb('0x1c')]=_0x3d2a5e;if(_0x459583[_0xb5fb('0x2e')][_0xb5fb('0x3e')]){_0x4114ef[_0xb5fb('0x3f')]=[{'all':!![]}];}return db[_0xb5fb('0x29')]['findAll'](_0x4114ef);})[_0xb5fb('0x22')](function(_0x7572b4){_0x58175d[_0xb5fb('0x40')]=_0x7572b4;return _0x58175d;})[_0xb5fb('0x22')](respondWithFilteredResult(_0x2cdbf1,_0x4114ef))['catch'](handleError(_0x2cdbf1,null));};exports[_0xb5fb('0x41')]=function(_0x1c0014,_0x38704e){var _0x1ffa69={'raw':![],'where':{'id':_0x1c0014[_0xb5fb('0x42')]['id']}},_0x11addd={};_0x11addd[_0xb5fb('0x2d')]=_[_0xb5fb('0x2f')](db[_0xb5fb('0x29')]['rawAttributes']);_0x11addd[_0xb5fb('0x2e')]=_['keys'](_0x1c0014[_0xb5fb('0x2e')]);_0x11addd[_0xb5fb('0x30')]=_[_0xb5fb('0x31')](_0x11addd['model'],_0x11addd[_0xb5fb('0x2e')]);_0x1ffa69[_0xb5fb('0x32')]=_['intersection'](_0x11addd['model'],qs[_0xb5fb('0x33')](_0x1c0014[_0xb5fb('0x2e')][_0xb5fb('0x33')]));_0x1ffa69['attributes']=_0x1ffa69['attributes'][_0xb5fb('0x43')]?_0x1ffa69[_0xb5fb('0x32')]:_0x11addd[_0xb5fb('0x2d')];if(_0x1c0014[_0xb5fb('0x2e')][_0xb5fb('0x3e')]){_0x1ffa69[_0xb5fb('0x3f')]=[{'all':!![]}];}_0x1ffa69=_[_0xb5fb('0x3b')]({},_0x1ffa69,_0x1c0014[_0xb5fb('0x3d')]);return db[_0xb5fb('0x29')][_0xb5fb('0x44')](_0x1ffa69)[_0xb5fb('0x22')](handleEntityNotFound(_0x38704e,null))[_0xb5fb('0x22')](respondWithResult(_0x38704e,null))[_0xb5fb('0x45')](handleError(_0x38704e,null));};exports[_0xb5fb('0x46')]=function(_0x5b89e7,_0x1bef65){return db[_0xb5fb('0x29')]['create'](_0x5b89e7['body'],{})['then'](respondWithResult(_0x1bef65,0xc9))[_0xb5fb('0x45')](handleError(_0x1bef65,null));};exports['update']=function(_0x14d410,_0x5ab1c4){if(_0x14d410[_0xb5fb('0x47')]['id']){delete _0x14d410['body']['id'];}return db[_0xb5fb('0x29')][_0xb5fb('0x44')]({'where':{'id':_0x14d410[_0xb5fb('0x42')]['id']}})['then'](handleEntityNotFound(_0x5ab1c4,null))[_0xb5fb('0x22')](saveUpdates(_0x14d410[_0xb5fb('0x47')],null))[_0xb5fb('0x22')](respondWithResult(_0x5ab1c4,null))[_0xb5fb('0x45')](handleError(_0x5ab1c4,null));};exports['destroy']=function(_0x38b26f,_0x4d59f3){return db[_0xb5fb('0x29')][_0xb5fb('0x44')]({'where':{'id':_0x38b26f[_0xb5fb('0x42')]['id']}})['then'](handleEntityNotFound(_0x4d59f3,null))[_0xb5fb('0x22')](removeEntity(_0x4d59f3,null))['catch'](handleError(_0x4d59f3,null));};