1import express from 'express';
2import password from '../middlewares/password.js';
3import * as serverController from '../controller/servers.js';
4import * as interfaces from '../util/loadInterfaces.js';
5import { getJson } from '../util/http.js';
6import packageJson from '../../package.json';
7
8const version = packageJson.version;
9const remote_url = "https://api.github.com/repos/ikhsanddy/pixies/releases/latest";
10const app = express.Router();
11
12app.get("/version", password(false), async (req, res) => {
13 if (process.env.PREVIEW_MODE === "true") return res.json({local: version, remote: "0"});
14
15 try {
16 const data = await getJson(remote_url);
17 res.json({local: version, remote: data.tag_name.replace("v", "")});
18 } catch (e) {
19 res.json({local: version, remote: "0"});
20 }
21});
22
23app.get("/server/:provider", password(false), (req, res) => {
24 if (!["ookla", "libre"].includes(req.params.provider))
25 return res.status(400).json({message: "Invalid provider"});
26
27 res.json(serverController.getByMode(req.params.provider));
28});
29
30app.get("/interfaces", password(false), async (req, res) => {
31 res.json(interfaces.interfaces);
32});
33
34export default app;