| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import { Elysia } from 'elysia'
- import { Eta } from "eta"
- const eta = new Eta({ views: "./templates" })
- import Meteostanica from '../../utils/meteostanica'
- import editEnvVariable from '../../utils/editEnvVariable'
- import getWifiIPv4 from '../../utils/getWifiIPv4'
- export default (langName, lang) => new Elysia()
- .get('/', ({ set }) => {
- const data = Meteostanica.getData()
- set.headers['content-type'] = 'text/html; charset=utf8'
- return eta.render(`${langName}/index`, { data })
- })
- .get('/settings', ({ set }) => {
- set.headers['content-type'] = 'text/html; charset=utf8'
- return eta.render(`${langName}/settings`, { wifiIPv4: getWifiIPv4(), postDataEnabled: process.env.POST_DATA_ENABLED, cloudURL: process.env.BACKEND_URL, websocketKey: process.env.BACKEND_WEBSOCKET_KEY })
- })
- .post('/settings', async ({ body, set, redirect }) => {
- const postDataEnabled = body?.postDataEnabled
- const cloudURL = body?.cloudURL
- const websocketKey = body?.websocketKey
- if (!cloudURL) {
- set.headers['content-type'] = 'text/html; charset=utf8'
- return eta.render(`${langName}/settings`, { wifiIPv4: getWifiIPv4(), lang, error: `noCloudURL` })
- }
- if (!websocketKey) {
- set.headers['content-type'] = 'text/html; charset=utf8'
- return eta.render(`${langName}/settings`, { wifiIPv4: getWifiIPv4(), lang, error: `noWebsocketKey` })
- }
-
- await editEnvVariable(`POST_DATA_ENABLED`, postDataEnabled ?? "false")
- await editEnvVariable(`BACKEND_URL`, cloudURL)
- await editEnvVariable(`BACKEND_WEBSOCKET_KEY`, websocketKey)
- return redirect(`${langName === `sk` ? `/` : `/en`}`)
- })
- .get('/currentData', () => {
- const data = Meteostanica.getData()
- return data?.[0]
- })
|