From 55f4e90fea00197e373778baf318789e99a18a08 Mon Sep 17 00:00:00 2001 From: Darius Date: Tue, 18 Nov 2025 22:25:29 +0100 Subject: [PATCH] fix routes --- src/index.ts | 187 +++++++++++++++++++++++++-------------------------- 1 file changed, 91 insertions(+), 96 deletions(-) diff --git a/src/index.ts b/src/index.ts index b45956f..89acaaf 100644 --- a/src/index.ts +++ b/src/index.ts @@ -37,110 +37,105 @@ const haService = new HomeAssistantService(haClient); const tidalClient = new TidalClient(server.axios.tidal); const tidalService = new TidalService(tidalClient); -server.register( - async (fastify) => { - // HOME ASSISTANT - fastify.get("/homeassistant/desk/position", async (_request, reply) => { - const result = await haService.getDeskPosition(); +// HOME ASSISTANT +server.get("/homeassistant/desk/position", async (_request, reply) => { + const result = await haService.getDeskPosition(); - if (!result) { - reply.code(500); - return { error: "Failed to get desk position" }; - } + if (!result) { + reply.code(500); + return { error: "Failed to get desk position" }; + } - return { - position: result.as_text(), - is_standing: result.as_boolean, - last_changed: result.last_changed.toReadable(true), - }; - }); + return { + position: result.as_text(), + is_standing: result.as_boolean, + last_changed: result.last_changed.toReadable(true), + }; +}); - fastify.post( - "/homeassistant/desk/stand", - { preHandler: verifyAPIKey }, - async (_request, reply) => { - const result = await haService.startStandingAutomation(); +server.post( + "/homeassistant/desk/stand", + { preHandler: verifyAPIKey }, + async (_request, reply) => { + const result = await haService.startStandingAutomation(); - if (!result) { - reply.code(500); - return { error: "Failed to get desk position" }; - } + if (!result) { + reply.code(500); + return { error: "Failed to get desk position" }; + } - return { result }; - }, - ); - - fastify.get("/homeassistant/temperature", async (_request, reply) => { - const result = await haService.getTemperatureText(); - - if (!result) { - reply.code(500); - return { error: "Failed to get desk position" }; - } - - return { - temperature: result, - }; - }); - - // TIDAL - fastify.get("/tidal/song", async (_request, reply) => { - const result = await tidalService.getSong(); - - if (!result) { - reply.code(500); - return { error: "Failed to get song" }; - } - - return { result }; - }); - - fastify.get("/tidal/songFormatted", async (_request, reply) => { - const result = await tidalService.getSongFormatted(); - - if (!result) { - reply.code(500); - return { error: "Failed to get song" }; - } - - return { result }; - }); - - fastify.get("/tidal/volume", async (_request, reply) => { - const result = await tidalService.getVolume(); - - if (!result) { - reply.code(500); - return { error: "Failed to get volume" }; - } - - return { result }; - }); - - fastify.post( - "/tidal/volume", - { preHandler: verifyAPIKey }, - async (request, reply) => { - const volume = request.body as string; - const result = await tidalService.setVolume(volume); - - if (!result) { - reply.code(500); - return { error: "Failed to set volume" }; - } - - return { result }; - }, - ); - - // Default - fastify.get("/ping", async (_request, _reply) => { - return "pong\n"; - }); + return { result }; }, - { prefix: "/api" }, ); +server.get("/homeassistant/temperature", async (_request, reply) => { + const result = await haService.getTemperatureText(); + + if (!result) { + reply.code(500); + return { error: "Failed to get desk position" }; + } + + return { + temperature: result, + }; +}); + +// TIDAL +server.get("/tidal/song", async (_request, reply) => { + const result = await tidalService.getSong(); + + if (!result) { + reply.code(500); + return { error: "Failed to get song" }; + } + + return { result }; +}); + +server.get("/tidal/songFormatted", async (_request, reply) => { + const result = await tidalService.getSongFormatted(); + + if (!result) { + reply.code(500); + return { error: "Failed to get song" }; + } + + return { result }; +}); + +server.get("/tidal/volume", async (_request, reply) => { + const result = await tidalService.getVolume(); + + if (!result) { + reply.code(500); + return { error: "Failed to get volume" }; + } + + return { result }; +}); + +server.post( + "/tidal/volume", + { preHandler: verifyAPIKey }, + async (request, reply) => { + const volume = request.body as string; + const result = await tidalService.setVolume(volume); + + if (!result) { + reply.code(500); + return { error: "Failed to set volume" }; + } + + return { result }; + }, +); + +// Default +server.get("/ping", async (_request, _reply) => { + return "pong\n"; +}); + server.listen( { port: parseInt(Config.port, 10), host: "0.0.0.0" }, (err, address) => {