secend try
This commit is contained in:
@@ -4,22 +4,24 @@ const wake = require('wake-on-lan');
|
|||||||
@Injectable()
|
@Injectable()
|
||||||
export class WolService {
|
export class WolService {
|
||||||
async wakeUp(mac: string): Promise<{ success: boolean; message: string }> {
|
async wakeUp(mac: string): Promise<{ success: boolean; message: string }> {
|
||||||
return new Promise((resolve, reject) => {
|
try {
|
||||||
wake(mac, (error: Error | null) => {
|
// 1. Rufe die Funktion direkt auf.
|
||||||
if (error) {
|
// Sie ist synchron und "fire-and-forget".
|
||||||
console.error(`Fehler beim Senden des WoL-Pakets an ${mac}:`, error);
|
// Sie WIRFT einen FEHLER, wenn die MAC-Adresse ungültig ist.
|
||||||
reject(
|
wake(mac);
|
||||||
new InternalServerErrorException(
|
|
||||||
`Paket konnte nicht gesendet werden: ${error.message}`,
|
// 2. Wenn die Zeile oben KEINEN Fehler wirft,
|
||||||
),
|
// ist die Anfrage raus. Gib sofort Erfolg zurück.
|
||||||
);
|
return {
|
||||||
} else {
|
|
||||||
resolve({
|
|
||||||
success: true,
|
success: true,
|
||||||
message: `Magic Packet erfolgreich an ${mac} gesendet.`,
|
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