Campaign Kitchen Reviews

Customer Experiences & Feedback

← Back to Campaign Services

Campaign Kitchen & Culinary Services

Veteran-owned catering service delivering exceptional culinary experiences

Contact:
campaign@campaign-services.net
Phone:
(210) 729-1475
Specialty:
BBQ & Gourmet Catering
Capacity:
Up to 300 guests

Customer Reviews

Loading authentic Yelp reviews...

} async loadReviews() { try { // Check for API key via server endpoint const response = await fetch('/api/yelp/reviews'); const data = await response.json(); if (response.ok && data.reviews && data.reviews.length > 0) { this.displayReviews(data.reviews); this.updateApiStatus('Connected', true); this.displayBusinessInfo(data.business); } else { this.displaySetupMessage(); this.updateApiStatus('API Key Required', false); } } catch (error) { console.error('Error loading Yelp reviews:', error); this.displayErrorMessage(); this.updateApiStatus('Connection Error', false); } } updateApiStatus(status, connected) { const statusElement = document.getElementById('yelpStatus'); statusElement.textContent = status; statusElement.className = connected ? 'yelp-status connected' : 'yelp-status'; } displayBusinessInfo(business) { if (!business) return; // Update business info section with live Yelp data const businessSection = document.querySelector('.business-info'); if (business.rating) { const ratingStars = '★'.repeat(Math.floor(business.rating)) + '☆'.repeat(5 - Math.floor(business.rating)); businessSection.innerHTML += `
Yelp Rating: ${ratingStars} (${business.rating}/5.0)
Total Reviews: ${business.review_count} reviews
`; } } async fetchYelpReviews() { // Actual Yelp API implementation would go here // This is the structure for when API key is provided const response = await fetch('/api/yelp/reviews', { method: 'GET', headers: { 'Authorization': `Bearer ${this.apiKey}`, 'Content-Type': 'application/json' } }); if (!response.ok) { throw new Error('Failed to fetch reviews'); } return await response.json(); } displayReviews(reviews) { const reviewsGrid = document.getElementById('reviewsGrid'); reviewsGrid.innerHTML = ''; reviews.forEach(review => { const reviewCard = this.createReviewCard(review); reviewsGrid.appendChild(reviewCard); }); } createReviewCard(review) { const card = document.createElement('div'); card.className = 'review-card'; const stars = '★'.repeat(review.rating) + '☆'.repeat(5 - review.rating); card.innerHTML = `
${review.user.name.charAt(0)}

${review.user.name}

${review.user.review_count} reviews

${stars.split('').map(star => `${star}`).join('')}
${review.text}
${new Date(review.time_created).toLocaleDateString()}
`; return card; } displaySetupMessage() { const reviewsGrid = document.getElementById('reviewsGrid'); reviewsGrid.innerHTML = `
🔧

API Setup Required

Yelp Integration Pending

To display authentic Campaign Kitchen reviews from Yelp, please provide your Yelp Fusion API key. Once connected, this page will automatically display real customer reviews and ratings for your catering services.

Business will be identified using: campaign@campaign-services.net
Ready for API connection
`; } displayErrorMessage() { const reviewsGrid = document.getElementById('reviewsGrid'); reviewsGrid.innerHTML = `
⚠️

Connection Error

Unable to load reviews

Unable to connect to Yelp API. Please check your API credentials and try again. Contact campaign@campaign-services.net for technical support.
Please retry connection
`; } } // Initialize Yelp Reviews Manager document.addEventListener('DOMContentLoaded', function() { new YelpReviewsManager(); console.log('Campaign Kitchen Reviews loaded'); });