Glaubensrichtungen aus der Datenbank
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user