secend try

This commit is contained in:
2025-10-21 22:41:29 +02:00
parent 9d5ae2ddb6
commit 5e01561df9

View File

@@ -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}`,
);
}
}
}