56 lines
1.9 KiB
Go
Executable File
56 lines
1.9 KiB
Go
Executable File
package participanthandler
|
|
|
|
import "log"
|
|
|
|
// CheckIfParticipantIsValid überprüft, ob ein Teilnehmer gültig ist.
|
|
// equipmentNumber: Die Nummer des Geräts, dessen Gültigkeit überprüft werden soll.
|
|
// Rückgabewert: Gibt eine Struktur zurück, die die Gültigkeit des Teilnehmers und seine Daten enthält.
|
|
func (c *ParticipantHandler) CheckIfParticipantIsValid(equipmentNumber int) CheckIfParticipantIsValidReturn {
|
|
// Erstellen einer Anfrage zur Überprüfung der Teilnehmergültigkeit
|
|
req := CheckIfParticipantIsValidRequest{Type: "baseDlRequest", UUID: "UUID"}
|
|
|
|
// Senden der Anfrage über das ParticipantManagement
|
|
c.ParticipantManagement.WriteJSON(req)
|
|
|
|
var res CheckIfParticipantIsValidResponse
|
|
for {
|
|
// Lesen der Antwort vom ParticipantManagement
|
|
err := c.ParticipantManagement.ReadJSON(&res)
|
|
if err != nil {
|
|
log.Fatal("CheckIfParticipantIsValidRequest - Error getting participant data:", err)
|
|
}
|
|
|
|
// Überprüfen, ob die Antwort den erwarteten Typ hat
|
|
if res.Type == "participantBaseData" {
|
|
break
|
|
}
|
|
}
|
|
|
|
var participantData *CheckIfParticipantIsValidReturn
|
|
// Durchlaufen der Teilnehmerdaten, um den passenden Teilnehmer zu finden
|
|
for _, participant := range res.Data {
|
|
if participant.EquipmentNumber == equipmentNumber {
|
|
participantData = &CheckIfParticipantIsValidReturn{
|
|
TacticalIdentifier: participant.TacticalIdentifier,
|
|
Designator: participant.Designator,
|
|
EquipmentNumber: participant.EquipmentNumber,
|
|
Valid: true,
|
|
PartyId: participant.PartyID,
|
|
}
|
|
}
|
|
}
|
|
|
|
// Falls kein passender Teilnehmer gefunden wurde, wird eine ungültige Struktur zurückgegeben
|
|
if participantData == nil {
|
|
participantData = &CheckIfParticipantIsValidReturn{
|
|
TacticalIdentifier: "",
|
|
Designator: "",
|
|
EquipmentNumber: 0,
|
|
Valid: false,
|
|
PartyId: 0,
|
|
}
|
|
}
|
|
|
|
return *participantData
|
|
}
|