const axios = require('axios'); /** * Test function to get event details using the REST API * @param slug string - event slug (e.g. al-awwal-tour-stadium-tickets-843728) * @param lang string - language code (default: 'en') * @param visibleIn string - visibility filter (default: 'rs') */ async function getEventDetailsBySlug(slug, lang = 'en', visibleIn = 'rs') { try { const url = `https://api.webook.com/api/v2/event-detail/${slug}?lang=${lang}&visible_in=${visibleIn}`; console.log(`Fetching event details from: ${url}`); const response = await axios.get(url, { headers: { "Accept": "*/*", "Accept-Encoding": "gzip, deflate, br, zstd", "Accept-Language": "en-US,en;q=0.9,ar;q=0.8", "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", } }); if (response.data && response.data.status === 'success' && response.data.data) { console.log('✅ Success! Event details:'); console.log(JSON.stringify(response.data.data, null, 2)); return response.data.data; } else { console.log('❌ No data found or invalid response'); console.log('Response:', response.data); return null; } } catch (error) { console.error('❌ Error fetching event details:', error.message); if (error.response) { console.error('Response status:', error.response.status); console.error('Response data:', error.response.data); } return null; } } /** * Extract slug from WeBook event URL and fetch details * @param eventUrl string - full event URL */ async function getEventDetailsByUrl(eventUrl) { try { // Extract slug from URL const match = eventUrl.match(/\/events\/([a-zA-Z0-9\-]+)/); if (!match || !match[1]) { console.log('❌ Could not extract slug from URL:', eventUrl); return null; } const slug = match[1]; console.log(`Extracted slug: ${slug}`); return await getEventDetailsBySlug(slug); } catch (error) { console.error('❌ Error extracting slug from URL:', error); return null; } } // Test the function with the provided example async function test() { console.log('🧪 Testing WeBook REST API...\n'); // Test 1: Direct slug console.log('📋 Test 1: Direct slug'); await getEventDetailsBySlug('al-awwal-tour-stadium-tickets-843728'); console.log('\n' + '='.repeat(50) + '\n'); // Test 2: From URL console.log('📋 Test 2: From URL'); await getEventDetailsByUrl('https://webook.com/en/events/al-awwal-tour-stadium-tickets-843728'); console.log('\n' + '='.repeat(50) + '\n'); // Test 3: Different language console.log('📋 Test 3: Arabic language'); await getEventDetailsBySlug('al-awwal-tour-stadium-tickets-843728', 'ar', 'rs'); } // Run the test test().catch(console.error);