secend try
This commit is contained in:
@@ -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}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user