diff --git a/src/wol/wol.service.ts b/src/wol/wol.service.ts index f4b8288..b712948 100644 --- a/src/wol/wol.service.ts +++ b/src/wol/wol.service.ts @@ -4,22 +4,24 @@ const wake = require('wake-on-lan'); @Injectable() export class WolService { async wakeUp(mac: string): Promise<{ success: boolean; message: string }> { - return new Promise((resolve, reject) => { - wake(mac, (error: Error | null) => { - if (error) { - console.error(`Fehler beim Senden des WoL-Pakets an ${mac}:`, error); - reject( - new InternalServerErrorException( - `Paket konnte nicht gesendet werden: ${error.message}`, - ), - ); - } else { - resolve({ - success: true, - message: `Magic Packet erfolgreich an ${mac} gesendet.`, - }); - } - }); - }); + try { + // 1. Rufe die Funktion direkt auf. + // Sie ist synchron und "fire-and-forget". + // Sie WIRFT einen FEHLER, wenn die MAC-Adresse ungültig ist. + wake(mac); + + // 2. Wenn die Zeile oben KEINEN Fehler wirft, + // ist die Anfrage raus. Gib sofort Erfolg zurück. + return { + success: true, + message: `Magic Packet (Anfrage) an ${mac} gesendet.`, + }; + } catch (error) { + // 3. Fange den synchronen Fehler ab (z.B. "invalid mac address") + console.error(`Fehler beim Senden des WoL-Pakets an ${mac}:`, error); + throw new InternalServerErrorException( + `Paket konnte nicht gesendet werden: ${error.message}`, + ); + } } }