feat: Toggle reviews via ENV
This commit is contained in:
@ -36,10 +36,11 @@ Docker is coming soon!
|
|||||||
3. Launch the app at `src/main.ts` with the environment variables set:
|
3. Launch the app at `src/main.ts` with the environment variables set:
|
||||||
- `GOOGLE_GENERATIVE_AI_API_KEY` (optional, to enable MapAI features. Its free at Google!)
|
- `GOOGLE_GENERATIVE_AI_API_KEY` (optional, to enable MapAI features. Its free at Google!)
|
||||||
- `TANKERKOENIG_API_KEY` (optional, to enable fuel price features. Its free!)
|
- `TANKERKOENIG_API_KEY` (optional, to enable fuel price features. Its free!)
|
||||||
- `OIDC_ENABLED` (required to be set to `true`)
|
- `OIDC_ENABLED` (needs to be enabled for most features requiring authentication)
|
||||||
- `OIDC_AUTH_URL` (the Authentication URL of your OIDC server)
|
- `OIDC_AUTH_URL` (the Authentication URL of your OIDC server)
|
||||||
- `OIDC_CLIENT_ID` (the Client ID of your OIDC server)
|
- `OIDC_CLIENT_ID` (the Client ID of your OIDC server)
|
||||||
- `OIDC_TOKEN_URL` (the Token URL of your OIDC server)
|
- `OIDC_TOKEN_URL` (the Token URL of your OIDC server)
|
||||||
- `OIDC_JWKS_URL` (the JWKS/Certificate URL of your OIDC server)
|
- `OIDC_JWKS_URL` (the JWKS/Certificate URL of your OIDC server)
|
||||||
|
- `REVIEWS_ENABLED` (optional, set to `true` to enable POI reviews by users, requires OIDC)
|
||||||
|
|
||||||
When configuring your OIDC server, make sure to enable Public Client and PCKE support.
|
When configuring your OIDC server, make sure to enable Public Client and PCKE support.
|
||||||
|
20
src/main.ts
20
src/main.ts
@ -41,7 +41,15 @@ app.use(
|
|||||||
);
|
);
|
||||||
|
|
||||||
app.get("/api/config", (c) => {
|
app.get("/api/config", (c) => {
|
||||||
const capabilities: string[] = ["auth", "reviews"];
|
const capabilities: string[] = [];
|
||||||
|
|
||||||
|
if(process.env.OIDC_ENABLED) {
|
||||||
|
capabilities.push("auth");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(process.env.REVIEWS_ENABLED) {
|
||||||
|
capabilities.push("reviews");
|
||||||
|
}
|
||||||
|
|
||||||
if(process.env.GOOGLE_GENERATIVE_AI_API_KEY) {
|
if(process.env.GOOGLE_GENERATIVE_AI_API_KEY) {
|
||||||
capabilities.push("ai");
|
capabilities.push("ai");
|
||||||
@ -63,7 +71,8 @@ app.get("/api/config", (c) => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
app.get("/api/reviews", async (c) => {
|
if(process.env.REVIEWS_ENABLED) {
|
||||||
|
app.get("/api/reviews", async (c) => {
|
||||||
let {lat, lon} = c.req.query();
|
let {lat, lon} = c.req.query();
|
||||||
if (!lat || !lon) {
|
if (!lat || !lon) {
|
||||||
return c.json({ error: "Latitude and longitude are required" }, 400);
|
return c.json({ error: "Latitude and longitude are required" }, 400);
|
||||||
@ -86,9 +95,9 @@ app.get("/api/reviews", async (c) => {
|
|||||||
username: "Me" // TODO: Sync OIDC users with the database
|
username: "Me" // TODO: Sync OIDC users with the database
|
||||||
};
|
};
|
||||||
})));
|
})));
|
||||||
});
|
});
|
||||||
|
|
||||||
app.post("/api/review", async (c) => {
|
app.post("/api/review", async (c) => {
|
||||||
const { rating, comment, lat, lon } = await c.req.json();
|
const { rating, comment, lat, lon } = await c.req.json();
|
||||||
if (!rating || !lat || !lon) {
|
if (!rating || !lat || !lon) {
|
||||||
return c.json({ error: "Rating, latitude, and longitude are required" }, 400);
|
return c.json({ error: "Rating, latitude, and longitude are required" }, 400);
|
||||||
@ -118,7 +127,8 @@ app.post("/api/review", async (c) => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
return c.json(res.rows[0]);
|
return c.json(res.rows[0]);
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
if(process.env.TANKERKOENIG_API_KEY) {
|
if(process.env.TANKERKOENIG_API_KEY) {
|
||||||
app.get("/api/fuel/list", async (c) => {
|
app.get("/api/fuel/list", async (c) => {
|
||||||
|
Reference in New Issue
Block a user