UNPKG

strapi-plugin-map-box

Version:
118 lines (117 loc) 2.88 kB
const bootstrap = ({ strapi: strapi2 }) => { }; const destroy = ({ strapi: strapi2 }) => { }; const register = ({ strapi: strapi2 }) => { strapi2.customFields.register({ name: "map-box", type: "json" }); }; const config = { default: {}, validator() { } }; const contentTypes = {}; function getPluginConfig(name) { const config2 = strapi.plugin("strapi-plugin-map-box").config(name); return config2; } const controller = ({ strapi: strapi2 }) => ({ async locationSearch(ctx) { const query = ctx.params.query; console.log("Query from URL:", query); const result = await strapi2.plugin("strapi-plugin-map-box").service("service").locationSearch(query); ctx.body = result; }, async getSettings(ctx) { const result = getPluginConfig("public"); console.log("result from getSettings", result); ctx.body = result; } }); const controllers = { controller }; const middlewares = {}; const policies = {}; const contentAPIRoutes = []; const adminAPIRoutes = [ { method: "GET", path: "/location-search/:query", handler: "controller.locationSearch", config: { policies: ["admin::isAuthenticatedAdmin"] } }, { method: "GET", path: "/get-settings", handler: "controller.getSettings", config: { policies: ["admin::isAuthenticatedAdmin"] } } ]; const routes = { "content-api": { type: "content-api", routes: contentAPIRoutes }, "admin-api": { type: "admin", routes: adminAPIRoutes } }; const service = ({ strapi: strapi2 }) => ({ async locationSearch(query) { try { const pluginSettings = getPluginConfig("public"); console.log("pluginSettings", pluginSettings); if (!pluginSettings.accessToken) { return { error: "MapBox access token is not configured. Please add your access token in the plugin settings.", features: [] }; } const MAPBOX_ACCESS_TOKEN = pluginSettings.accessToken; console.log("MAPBOX_ACCESS_TOKEN", MAPBOX_ACCESS_TOKEN); console.log("Searching for:", query); const response = await fetch( `https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(query)}.json?access_token=${MAPBOX_ACCESS_TOKEN}` ); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } const data = await response.json(); return data; } catch (error) { console.error("Error searching location:", error); return { error: error instanceof Error ? error.message : "An error occurred", features: [] }; } } }); const services = { service }; const index = { register, bootstrap, destroy, config, controllers, routes, services, contentTypes, policies, middlewares }; export { index as default }; //# sourceMappingURL=index.mjs.map