19a5e32f1798cb78cf8f923a95d8f8e2502a3ad5
[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 _0xddef=['map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','type','VIRTUAL','filter','Integration','includeAll','findAll','catch','show','params','keys','include','options','find','create','update','eml-format','fast-json-patch','moment','bluebird','util','path','to-csv','ejs','fs-extra','lodash','crypto','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','destroy','then','end','sendStatus','error','stack','name','send','render','merge','body','contact','message','interaction','account','index','rawAttributes','fieldName','key','model'];(function(_0x4037cb,_0x59d55e){var _0xe7371d=function(_0x2883d6){while(--_0x2883d6){_0x4037cb['push'](_0x4037cb['shift']());}};_0xe7371d(++_0x59d55e);}(_0xddef,0x192));var _0xfdde=function(_0x5440fb,_0x42581f){_0x5440fb=_0x5440fb-0x0;var _0x4b7288=_0xddef[_0x5440fb];return _0x4b7288;};'use strict';var emlformat=require(_0xfdde('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xfdde('0x1'));var rp=require('request-promise');var moment=require(_0xfdde('0x2'));var BPromise=require(_0xfdde('0x3'));var Mustache=require('mustache');var util=require(_0xfdde('0x4'));var path=require(_0xfdde('0x5'));var sox=require('sox');var csv=require(_0xfdde('0x6'));var ejs=require(_0xfdde('0x7'));var fs=require('fs');var fs_extra=require(_0xfdde('0x8'));var _=require(_0xfdde('0x9'));var squel=require('squel');var crypto=require(_0xfdde('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xfdde('0x6'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xfdde('0xb'));var qs=require('../../components/parsers/qs');var as=require(_0xfdde('0xc'));var hardwareService=require(_0xfdde('0xd'));var logger=require('../../config/logger')(_0xfdde('0xe'));var utils=require(_0xfdde('0xf'));var config=require('../../config/environment');var licenseUtil=require(_0xfdde('0x10'));var db=require(_0xfdde('0x11'))['db'];function respondWithStatusCode(_0x109b65,_0x4be0b8){_0x4be0b8=_0x4be0b8||0xcc;return function(_0x327c7a){if(_0x327c7a){return _0x109b65['sendStatus'](_0x4be0b8);}return _0x109b65['status'](_0x4be0b8)['end']();};}function respondWithResult(_0x34d870,_0x52a087){_0x52a087=_0x52a087||0xc8;return function(_0x3e46af){if(_0x3e46af){return _0x34d870[_0xfdde('0x12')](_0x52a087)['json'](_0x3e46af);}};}function respondWithFilteredResult(_0x4b44d5,_0x242d9a){return function(_0x40f08d){if(_0x40f08d){var _0x4f9665=typeof _0x242d9a[_0xfdde('0x13')]===_0xfdde('0x14')&&typeof _0x242d9a[_0xfdde('0x15')]==='undefined';var _0x315fa5=_0x40f08d[_0xfdde('0x16')];var _0x10acc3=_0x4f9665?0x0:_0x242d9a['offset'];var _0x5d74b3=_0x4f9665?_0x40f08d[_0xfdde('0x16')]:_0x242d9a['offset']+_0x242d9a[_0xfdde('0x15')];var _0x29f31f;if(_0x5d74b3>=_0x315fa5){_0x5d74b3=_0x315fa5;_0x29f31f=0xc8;}else{_0x29f31f=0xce;}_0x4b44d5['status'](_0x29f31f);return _0x4b44d5[_0xfdde('0x17')](_0xfdde('0x18'),_0x10acc3+'-'+_0x5d74b3+'/'+_0x315fa5)[_0xfdde('0x19')](_0x40f08d);}return null;};}function patchUpdates(_0x2f42ca){return function(_0x14138c){try{jsonpatch[_0xfdde('0x1a')](_0x14138c,_0x2f42ca,!![]);}catch(_0x43c284){return BPromise[_0xfdde('0x1b')](_0x43c284);}return _0x14138c['save']();};}function saveUpdates(_0xcaf81,_0x224dcd){return function(_0x2d49c2){if(_0x2d49c2){return _0x2d49c2['update'](_0xcaf81)['then'](function(_0x383116){return _0x383116;});}return null;};}function removeEntity(_0x1dfada,_0x29ad32){return function(_0x12720a){if(_0x12720a){return _0x12720a[_0xfdde('0x1c')]()[_0xfdde('0x1d')](function(){_0x1dfada[_0xfdde('0x12')](0xcc)[_0xfdde('0x1e')]();});}};}function handleEntityNotFound(_0x3e8ac4,_0x43b611){return function(_0x2c42e5){if(!_0x2c42e5){_0x3e8ac4[_0xfdde('0x1f')](0x194);}return _0x2c42e5;};}function handleError(_0x6753be,_0x16ed8e){_0x16ed8e=_0x16ed8e||0x1f4;return function(_0x47718d){logger[_0xfdde('0x20')](_0x47718d[_0xfdde('0x21')]);if(_0x47718d[_0xfdde('0x22')]){delete _0x47718d['name'];}_0x6753be['status'](_0x16ed8e)[_0xfdde('0x23')](_0x47718d);};}function getMustacheRender(_0x6c9ffd,_0x3186d6){return Mustache[_0xfdde('0x24')](_0x6c9ffd,_[_0xfdde('0x25')](_0x3186d6[_0xfdde('0x26')],{'contact':_0x3186d6[_0xfdde('0x27')],'message':_0x3186d6[_0xfdde('0x28')],'agent':_0x3186d6['agent'],'interaction':_0x3186d6[_0xfdde('0x29')],'account':_0x3186d6[_0xfdde('0x2a')]}))||'';}exports[_0xfdde('0x2b')]=function(_0x4b6e5a,_0x5a5df5){var _0x169e53={},_0x110ffe={},_0x5399c2={'count':0x0,'rows':[]};var _0x53e863=_['map'](db['Integration'][_0xfdde('0x2c')],function(_0x4bb450){return{'name':_0x4bb450[_0xfdde('0x2d')],'type':_0x4bb450['type'][_0xfdde('0x2e')]};});_0x110ffe[_0xfdde('0x2f')]=_[_0xfdde('0x30')](_0x53e863,_0xfdde('0x22'));_0x110ffe[_0xfdde('0x31')]=_['keys'](_0x4b6e5a[_0xfdde('0x31')]);_0x110ffe[_0xfdde('0x32')]=_[_0xfdde('0x33')](_0x110ffe[_0xfdde('0x2f')],_0x110ffe[_0xfdde('0x31')]);_0x169e53[_0xfdde('0x34')]=_[_0xfdde('0x33')](_0x110ffe[_0xfdde('0x2f')],qs['fields'](_0x4b6e5a['query'][_0xfdde('0x35')]));_0x169e53[_0xfdde('0x34')]=_0x169e53[_0xfdde('0x34')][_0xfdde('0x36')]?_0x169e53[_0xfdde('0x34')]:_0x110ffe[_0xfdde('0x2f')];if(!_0x4b6e5a[_0xfdde('0x31')][_0xfdde('0x37')](_0xfdde('0x38'))){_0x169e53[_0xfdde('0x15')]=qs['limit'](_0x4b6e5a[_0xfdde('0x31')][_0xfdde('0x15')]);_0x169e53['offset']=qs[_0xfdde('0x13')](_0x4b6e5a[_0xfdde('0x31')]['offset']);}_0x169e53['order']=qs[_0xfdde('0x39')](_0x4b6e5a['query'][_0xfdde('0x39')]);_0x169e53[_0xfdde('0x3a')]=qs[_0xfdde('0x32')](_[_0xfdde('0x3b')](_0x4b6e5a['query'],_0x110ffe[_0xfdde('0x32')]),_0x53e863);if(_0x4b6e5a[_0xfdde('0x31')]['filter']){_0x169e53['where']=_[_0xfdde('0x25')](_0x169e53[_0xfdde('0x3a')],{'$or':_['map'](_0x53e863,function(_0x2b4e1d){if(_0x2b4e1d[_0xfdde('0x3c')]!==_0xfdde('0x3d')){var _0x2aa74d={};_0x2aa74d[_0x2b4e1d[_0xfdde('0x22')]]={'$like':'%'+_0x4b6e5a[_0xfdde('0x31')][_0xfdde('0x3e')]+'%'};return _0x2aa74d;}})});}_0x169e53=_[_0xfdde('0x25')]({},_0x169e53,_0x4b6e5a['options']);var _0x2491a4={'where':_0x169e53[_0xfdde('0x3a')]};return db[_0xfdde('0x3f')]['count'](_0x2491a4)['then'](function(_0x31a855){_0x5399c2[_0xfdde('0x16')]=_0x31a855;if(_0x4b6e5a[_0xfdde('0x31')][_0xfdde('0x40')]){_0x169e53['include']=[{'all':!![]}];}return db['Integration'][_0xfdde('0x41')](_0x169e53);})[_0xfdde('0x1d')](function(_0x368308){_0x5399c2['rows']=_0x368308;return _0x5399c2;})['then'](respondWithFilteredResult(_0x5a5df5,_0x169e53))[_0xfdde('0x42')](handleError(_0x5a5df5,null));};exports[_0xfdde('0x43')]=function(_0xa38c22,_0x1765b1){var _0x42eef6={'raw':![],'where':{'id':_0xa38c22[_0xfdde('0x44')]['id']}},_0x58135f={};_0x58135f[_0xfdde('0x2f')]=_[_0xfdde('0x45')](db[_0xfdde('0x3f')]['rawAttributes']);_0x58135f['query']=_['keys'](_0xa38c22[_0xfdde('0x31')]);_0x58135f['filters']=_[_0xfdde('0x33')](_0x58135f['model'],_0x58135f[_0xfdde('0x31')]);_0x42eef6[_0xfdde('0x34')]=_[_0xfdde('0x33')](_0x58135f['model'],qs['fields'](_0xa38c22['query']['fields']));_0x42eef6[_0xfdde('0x34')]=_0x42eef6['attributes'][_0xfdde('0x36')]?_0x42eef6[_0xfdde('0x34')]:_0x58135f[_0xfdde('0x2f')];if(_0xa38c22[_0xfdde('0x31')][_0xfdde('0x40')]){_0x42eef6[_0xfdde('0x46')]=[{'all':!![]}];}_0x42eef6=_[_0xfdde('0x25')]({},_0x42eef6,_0xa38c22[_0xfdde('0x47')]);return db[_0xfdde('0x3f')][_0xfdde('0x48')](_0x42eef6)[_0xfdde('0x1d')](handleEntityNotFound(_0x1765b1,null))[_0xfdde('0x1d')](respondWithResult(_0x1765b1,null))['catch'](handleError(_0x1765b1,null));};exports[_0xfdde('0x49')]=function(_0x9bd1d,_0x26c477){return db[_0xfdde('0x3f')]['create'](_0x9bd1d[_0xfdde('0x26')],{})[_0xfdde('0x1d')](respondWithResult(_0x26c477,0xc9))['catch'](handleError(_0x26c477,null));};exports[_0xfdde('0x4a')]=function(_0x2cc917,_0x2a97f6){if(_0x2cc917[_0xfdde('0x26')]['id']){delete _0x2cc917[_0xfdde('0x26')]['id'];}return db['Integration']['find']({'where':{'id':_0x2cc917[_0xfdde('0x44')]['id']}})['then'](handleEntityNotFound(_0x2a97f6,null))['then'](saveUpdates(_0x2cc917['body'],null))[_0xfdde('0x1d')](respondWithResult(_0x2a97f6,null))[_0xfdde('0x42')](handleError(_0x2a97f6,null));};exports[_0xfdde('0x1c')]=function(_0x158a10,_0x580d70){return db[_0xfdde('0x3f')][_0xfdde('0x48')]({'where':{'id':_0x158a10[_0xfdde('0x44')]['id']}})[_0xfdde('0x1d')](handleEntityNotFound(_0x580d70,null))[_0xfdde('0x1d')](removeEntity(_0x580d70,null))[_0xfdde('0x42')](handleError(_0x580d70,null));};