6d0275eb78173002358c22bbcdd4be661283c3b6
[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 _0x3adb=['query','attributes','fields','length','nolimit','order','sort','filter','where','map','VIRTUAL','options','Integration','includeAll','include','findAll','rows','catch','show','params','keys','find','create','update','destroy','eml-format','rimraf','zip-dir','fast-json-patch','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','save','then','stack','name','send','render','merge','body','contact','message','interaction','account','index','rawAttributes','type','key','model','filters','intersection'];(function(_0x19f49f,_0x357f51){var _0x2e9658=function(_0x37f2bc){while(--_0x37f2bc){_0x19f49f['push'](_0x19f49f['shift']());}};_0x2e9658(++_0x357f51);}(_0x3adb,0x159));var _0xb3ad=function(_0x1087b9,_0x412730){_0x1087b9=_0x1087b9-0x0;var _0x192d3a=_0x3adb[_0x1087b9];return _0x192d3a;};'use strict';var emlformat=require(_0xb3ad('0x0'));var rimraf=require(_0xb3ad('0x1'));var zipdir=require(_0xb3ad('0x2'));var jsonpatch=require(_0xb3ad('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xb3ad('0x4'));var util=require(_0xb3ad('0x5'));var path=require(_0xb3ad('0x6'));var sox=require(_0xb3ad('0x7'));var csv=require(_0xb3ad('0x8'));var ejs=require(_0xb3ad('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb3ad('0xa'));var squel=require(_0xb3ad('0xb'));var crypto=require('crypto');var jsforce=require(_0xb3ad('0xc'));var deskjs=require(_0xb3ad('0xd'));var toCsv=require(_0xb3ad('0x8'));var querystring=require(_0xb3ad('0xe'));var Papa=require(_0xb3ad('0xf'));var Redis=require(_0xb3ad('0x10'));var authService=require(_0xb3ad('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xb3ad('0x12'));var hardwareService=require(_0xb3ad('0x13'));var logger=require(_0xb3ad('0x14'))(_0xb3ad('0x15'));var utils=require(_0xb3ad('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xb3ad('0x17'));var db=require(_0xb3ad('0x18'))['db'];function respondWithStatusCode(_0x1624b6,_0x599ef7){_0x599ef7=_0x599ef7||0xcc;return function(_0x51f32a){if(_0x51f32a){return _0x1624b6[_0xb3ad('0x19')](_0x599ef7);}return _0x1624b6['status'](_0x599ef7)[_0xb3ad('0x1a')]();};}function respondWithResult(_0x377486,_0xe11a9c){_0xe11a9c=_0xe11a9c||0xc8;return function(_0x344bab){if(_0x344bab){return _0x377486[_0xb3ad('0x1b')](_0xe11a9c)[_0xb3ad('0x1c')](_0x344bab);}};}function respondWithFilteredResult(_0x1fa314,_0x522585){return function(_0x210ff9){if(_0x210ff9){var _0x38de6e=typeof _0x522585[_0xb3ad('0x1d')]==='undefined'&&typeof _0x522585[_0xb3ad('0x1e')]===_0xb3ad('0x1f');var _0x1a5cb4=_0x210ff9['count'];var _0xdda2e9=_0x38de6e?0x0:_0x522585[_0xb3ad('0x1d')];var _0x57a8d9=_0x38de6e?_0x210ff9[_0xb3ad('0x20')]:_0x522585[_0xb3ad('0x1d')]+_0x522585['limit'];var _0xe8118a;if(_0x57a8d9>=_0x1a5cb4){_0x57a8d9=_0x1a5cb4;_0xe8118a=0xc8;}else{_0xe8118a=0xce;}_0x1fa314[_0xb3ad('0x1b')](_0xe8118a);return _0x1fa314[_0xb3ad('0x21')](_0xb3ad('0x22'),_0xdda2e9+'-'+_0x57a8d9+'/'+_0x1a5cb4)[_0xb3ad('0x1c')](_0x210ff9);}return null;};}function patchUpdates(_0x285faa){return function(_0x38cebe){try{jsonpatch[_0xb3ad('0x23')](_0x38cebe,_0x285faa,!![]);}catch(_0x476c63){return BPromise['reject'](_0x476c63);}return _0x38cebe[_0xb3ad('0x24')]();};}function saveUpdates(_0x51a52a,_0x30d35b){return function(_0x2c8557){if(_0x2c8557){return _0x2c8557['update'](_0x51a52a)[_0xb3ad('0x25')](function(_0x349a5d){return _0x349a5d;});}return null;};}function removeEntity(_0xd7ddff,_0x2be9b7){return function(_0x1275f8){if(_0x1275f8){return _0x1275f8['destroy']()[_0xb3ad('0x25')](function(){_0xd7ddff['status'](0xcc)[_0xb3ad('0x1a')]();});}};}function handleEntityNotFound(_0x187581,_0x101249){return function(_0x19d87a){if(!_0x19d87a){_0x187581[_0xb3ad('0x19')](0x194);}return _0x19d87a;};}function handleError(_0x56ecfa,_0x37ac47){_0x37ac47=_0x37ac47||0x1f4;return function(_0x7a28ba){logger['error'](_0x7a28ba[_0xb3ad('0x26')]);if(_0x7a28ba['name']){delete _0x7a28ba[_0xb3ad('0x27')];}_0x56ecfa['status'](_0x37ac47)[_0xb3ad('0x28')](_0x7a28ba);};}function getMustacheRender(_0x2def4e,_0x14e92b){return Mustache[_0xb3ad('0x29')](_0x2def4e,_[_0xb3ad('0x2a')](_0x14e92b[_0xb3ad('0x2b')],{'contact':_0x14e92b[_0xb3ad('0x2c')],'message':_0x14e92b[_0xb3ad('0x2d')],'agent':_0x14e92b['agent'],'interaction':_0x14e92b[_0xb3ad('0x2e')],'account':_0x14e92b[_0xb3ad('0x2f')]}))||'';}exports[_0xb3ad('0x30')]=function(_0x42d620,_0x53dd26){var _0x1dc13f={},_0x3863ec={},_0x2de2a5={'count':0x0,'rows':[]};var _0x2bf09f=_['map'](db['Integration'][_0xb3ad('0x31')],function(_0x3ff629){return{'name':_0x3ff629['fieldName'],'type':_0x3ff629[_0xb3ad('0x32')][_0xb3ad('0x33')]};});_0x3863ec[_0xb3ad('0x34')]=_['map'](_0x2bf09f,_0xb3ad('0x27'));_0x3863ec['query']=_['keys'](_0x42d620['query']);_0x3863ec[_0xb3ad('0x35')]=_[_0xb3ad('0x36')](_0x3863ec[_0xb3ad('0x34')],_0x3863ec[_0xb3ad('0x37')]);_0x1dc13f[_0xb3ad('0x38')]=_[_0xb3ad('0x36')](_0x3863ec[_0xb3ad('0x34')],qs[_0xb3ad('0x39')](_0x42d620['query'][_0xb3ad('0x39')]));_0x1dc13f[_0xb3ad('0x38')]=_0x1dc13f['attributes'][_0xb3ad('0x3a')]?_0x1dc13f['attributes']:_0x3863ec[_0xb3ad('0x34')];if(!_0x42d620[_0xb3ad('0x37')]['hasOwnProperty'](_0xb3ad('0x3b'))){_0x1dc13f[_0xb3ad('0x1e')]=qs['limit'](_0x42d620['query'][_0xb3ad('0x1e')]);_0x1dc13f[_0xb3ad('0x1d')]=qs['offset'](_0x42d620[_0xb3ad('0x37')]['offset']);}_0x1dc13f[_0xb3ad('0x3c')]=qs[_0xb3ad('0x3d')](_0x42d620[_0xb3ad('0x37')][_0xb3ad('0x3d')]);_0x1dc13f['where']=qs[_0xb3ad('0x35')](_['pick'](_0x42d620[_0xb3ad('0x37')],_0x3863ec[_0xb3ad('0x35')]),_0x2bf09f);if(_0x42d620[_0xb3ad('0x37')][_0xb3ad('0x3e')]){_0x1dc13f[_0xb3ad('0x3f')]=_[_0xb3ad('0x2a')](_0x1dc13f['where'],{'$or':_[_0xb3ad('0x40')](_0x2bf09f,function(_0x5d8d40){if(_0x5d8d40[_0xb3ad('0x32')]!==_0xb3ad('0x41')){var _0x1605af={};_0x1605af[_0x5d8d40[_0xb3ad('0x27')]]={'$like':'%'+_0x42d620[_0xb3ad('0x37')][_0xb3ad('0x3e')]+'%'};return _0x1605af;}})});}_0x1dc13f=_[_0xb3ad('0x2a')]({},_0x1dc13f,_0x42d620[_0xb3ad('0x42')]);var _0x2ddcd0={'where':_0x1dc13f[_0xb3ad('0x3f')]};return db[_0xb3ad('0x43')]['count'](_0x2ddcd0)['then'](function(_0x14d87c){_0x2de2a5['count']=_0x14d87c;if(_0x42d620[_0xb3ad('0x37')][_0xb3ad('0x44')]){_0x1dc13f[_0xb3ad('0x45')]=[{'all':!![]}];}return db[_0xb3ad('0x43')][_0xb3ad('0x46')](_0x1dc13f);})[_0xb3ad('0x25')](function(_0x55881c){_0x2de2a5[_0xb3ad('0x47')]=_0x55881c;return _0x2de2a5;})['then'](respondWithFilteredResult(_0x53dd26,_0x1dc13f))[_0xb3ad('0x48')](handleError(_0x53dd26,null));};exports[_0xb3ad('0x49')]=function(_0x2dfab5,_0x16e368){var _0x36420b={'raw':![],'where':{'id':_0x2dfab5[_0xb3ad('0x4a')]['id']}},_0x16d4b1={};_0x16d4b1[_0xb3ad('0x34')]=_[_0xb3ad('0x4b')](db[_0xb3ad('0x43')][_0xb3ad('0x31')]);_0x16d4b1[_0xb3ad('0x37')]=_[_0xb3ad('0x4b')](_0x2dfab5[_0xb3ad('0x37')]);_0x16d4b1[_0xb3ad('0x35')]=_[_0xb3ad('0x36')](_0x16d4b1['model'],_0x16d4b1[_0xb3ad('0x37')]);_0x36420b[_0xb3ad('0x38')]=_[_0xb3ad('0x36')](_0x16d4b1[_0xb3ad('0x34')],qs[_0xb3ad('0x39')](_0x2dfab5[_0xb3ad('0x37')]['fields']));_0x36420b[_0xb3ad('0x38')]=_0x36420b[_0xb3ad('0x38')]['length']?_0x36420b[_0xb3ad('0x38')]:_0x16d4b1[_0xb3ad('0x34')];if(_0x2dfab5[_0xb3ad('0x37')][_0xb3ad('0x44')]){_0x36420b['include']=[{'all':!![]}];}_0x36420b=_[_0xb3ad('0x2a')]({},_0x36420b,_0x2dfab5[_0xb3ad('0x42')]);return db['Integration'][_0xb3ad('0x4c')](_0x36420b)['then'](handleEntityNotFound(_0x16e368,null))[_0xb3ad('0x25')](respondWithResult(_0x16e368,null))[_0xb3ad('0x48')](handleError(_0x16e368,null));};exports[_0xb3ad('0x4d')]=function(_0x149440,_0x26a586){return db[_0xb3ad('0x43')][_0xb3ad('0x4d')](_0x149440[_0xb3ad('0x2b')],{})[_0xb3ad('0x25')](respondWithResult(_0x26a586,0xc9))[_0xb3ad('0x48')](handleError(_0x26a586,null));};exports[_0xb3ad('0x4e')]=function(_0x3c9a40,_0x9399be){if(_0x3c9a40[_0xb3ad('0x2b')]['id']){delete _0x3c9a40[_0xb3ad('0x2b')]['id'];}return db['Integration'][_0xb3ad('0x4c')]({'where':{'id':_0x3c9a40[_0xb3ad('0x4a')]['id']}})[_0xb3ad('0x25')](handleEntityNotFound(_0x9399be,null))[_0xb3ad('0x25')](saveUpdates(_0x3c9a40[_0xb3ad('0x2b')],null))['then'](respondWithResult(_0x9399be,null))['catch'](handleError(_0x9399be,null));};exports[_0xb3ad('0x4f')]=function(_0xd82de3,_0x3c8b4a){return db['Integration']['find']({'where':{'id':_0xd82de3[_0xb3ad('0x4a')]['id']}})[_0xb3ad('0x25')](handleEntityNotFound(_0x3c8b4a,null))[_0xb3ad('0x25')](removeEntity(_0x3c8b4a,null))[_0xb3ad('0x48')](handleError(_0x3c8b4a,null));};