import { onRequest } from "firebase-functions/v2/https"; import { Request } from "firebase-functions/v2/https"; import * as express from "express"; import * as logger from "firebase-functions/logger"; import axios from "axios"; import { corsHandler } from "../shared/middleware"; export const getPlaceDetails = onRequest({ region: '#{SERVICES_RGN}#' }, async (request: Request, response: express.Response) => { return corsHandler(request, response, async () => { try { const { place_id, fields } = request.query; if (!place_id) { response.status(400).json({ error: 'place_id parameter is required' }); return; } const apiKey = process.env.GOOGLE_MAPS_API_KEY; if (!apiKey) { logger.error('Google Places API key is not configured'); response.status(500).json({ error: 'Server configuration error' }); return; } const url = 'https://maps.googleapis.com/maps/api/place/details/json'; const params: any = { key: apiKey, place_id: place_id, fields: fields || 'geometry' }; const result = await axios.get(url, { params }); logger.info('Google Places Details API request completed successfully'); response.json(result.data); } catch (error) { logger.error('Error fetching place details:', error); response.status(500).json({ success: false, error: error instanceof Error ? error.message : String(error) }); } }); });