Glaubensrichtungen aus der Datenbank

This commit is contained in:
2025-08-09 06:46:16 +02:00
parent 802848599e
commit 644778f6a8
2 changed files with 37 additions and 9 deletions
+26 -9
View File
@@ -2906,15 +2906,32 @@ func SearchBeliefs(c *gin.Context) {
return
}
// TODO: Datenbanksuche implementieren
// Dummy-Daten für Demo
allBeliefs := []string{
"Apshai", "Arthusos", "Beschützer", "Dwyllas", "Elfen",
"Fruchtbarkeitsgöttin", "Gaia", "Grafschafter", "Heiler",
"Jäger", "Kämpfer", "Lichbringer", "Meeresherr", "Natur",
"Ostküste", "Priester", "Rechtschaffener", "Schutzpatron",
"Stammesgeist", "Totengott", "Unterwelt", "Vater", "Weisheit",
"Xan", "Ylhoon", "Zauberer",
// Get game system from query parameter, default to "midgard"
gameSystem := c.DefaultQuery("game_system", "midgard")
// Load beliefs from database
believes, err := models.GetBelievesByActiveSources(gameSystem)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to load beliefs from database"})
return
}
// Extract belief names and filter by query
var allBeliefs []string
for _, belief := range believes {
allBeliefs = append(allBeliefs, belief.Name)
}
// If no beliefs found in database, fall back to hardcoded list
if len(allBeliefs) == 0 {
allBeliefs = []string{
"Apshai", "Arthusos", "Beschützer", "Dwyllas", "Elfen",
"Fruchtbarkeitsgöttin", "Gaia", "Grafschafter", "Heiler",
"Jäger", "Kämpfer", "Lichbringer", "Meeresherr", "Natur",
"Ostküste", "Priester", "Rechtschaffener", "Schutzpatron",
"Stammesgeist", "Totengott", "Unterwelt", "Vater", "Weisheit",
"Xan", "Ylhoon", "Zauberer",
}
}
var results []string
+11
View File
@@ -655,3 +655,14 @@ func (object *Believe) Save() error {
}
return nil
}
// GetBelievesByActiveSources gibt Glaubensrichtungen nach aktiven Quellen zurück
func GetBelievesByActiveSources(gameSystem string) ([]Believe, error) {
var believes []Believe
err := database.DB.
Joins("LEFT JOIN learning_sources ON gsm_believes.source_id = learning_sources.id").
Where("gsm_believes.game_system = ? AND (learning_sources.is_active = ? OR gsm_believes.source_id IS NULL)", gameSystem, true).
Order("gsm_believes.name ASC").
Find(&believes).Error
return believes, err
}