feat: Toggle reviews via ENV

This commit is contained in:
Cfp
2025-06-22 14:54:27 +02:00
parent d073d29868
commit 8f1f7a5f2b
2 changed files with 64 additions and 53 deletions

View File

@ -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.

View File

@ -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,6 +71,7 @@ app.get("/api/config", (c) => {
}) })
}) })
if(process.env.REVIEWS_ENABLED) {
app.get("/api/reviews", async (c) => { app.get("/api/reviews", async (c) => {
let {lat, lon} = c.req.query(); let {lat, lon} = c.req.query();
if (!lat || !lon) { if (!lat || !lon) {
@ -119,6 +128,7 @@ 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) => {