package lists import ( "fagott.pw/charakterin" "fagott.pw/grilist/frontend" "fagott.pw/grilist/grilist" "fagott.pw/grilist/modules/grils" "log" ) type ListsModule struct { g *grilist.Grilist grils *grils.GrilsModule } type List struct { ID int Name string Description string Owner *charakterin.User } func (m *ListsModule) Name() string { return "Lists" } func (m *ListsModule) Init(g *grilist.Grilist) { m.g = g gm, ok := g.Modules["Grils"] if !ok { log.Fatal("lists: grils module not found") } grilsModule, ok := gm.Interface().(*grils.GrilsModule) if !ok { log.Fatal("lists: error with grils module") } m.grils = grilsModule } func (m *ListsModule) Interface() interface{} { return m } func (m *ListsModule) ProvideDashboardData(user *charakterin.User) grilist.DashboardCategory { data := grilist.DashboardCategory{ Title: "Meine Listen", } rows, err := m.g.DB.Query(`SELECT id, name, description FROM grilist.lists WHERE user_id = $1`, user.ID) if err != nil { return data } defer rows.Close() for rows.Next() { card := frontend.Card{} view := frontend.Action{ Name: "anguckieren", } var id int if err := rows.Scan(&id, &card.Title, &card.Description); err != nil { log.Println("error scanning row",err) continue } card.Actions = []frontend.Action{view} data.Cards = append(data.Cards, card) } return data } func New() *ListsModule { return &ListsModule{} }