Source: RouterLocation/geoCode/controller.js

// @ts-check
/**
 * @import {ExpressRequestAuthorized, ExpressResponse} from '../../types.js'
 */

import * as geoService from './service.js';
import { errorLoggerRead } from '../../utils/requestLogger.js';

/**
 * Forward geocode: place name → coordinates
 * @param {ExpressRequestAuthorized} req
 * @param {ExpressResponse} res
 */
export const geocodePlaceController = async (req, res) => {
    try {
        const result = await geoService.geocodePlace(req.params.place);
        res.json(result);
    } catch (error) {
        errorLoggerRead(error);
        res.json({ success: false, message: error.message });
    }
};

/**
 * Reverse geocode: coordinates → place name
 * @param {ExpressRequestAuthorized} req
 * @param {ExpressResponse} res
 */
export const reverseGeocodeController = async (req, res) => {
    try {
        const result = await geoService.reverseGeocode(req.params.lat, req.params.lng);
        res.json(result);
    } catch (error) {
        errorLoggerRead(error);
        res.json({ success: false, message: error.message });
    }
};