package models import ( "log" "time" ) type WorkWeek struct { WorkDays []WorkDay User User WeekStart time.Time } func (w *WorkWeek) GetWeek(user User, tsMonday time.Time) WorkWeek { var week WorkWeek week.WorkDays = (*WorkDay).GetWorkDays(nil, user.CardUID, tsMonday, tsMonday.Add(7*24*time.Hour)) week.User = user week.WeekStart = tsMonday return week } func (w *WorkWeek) GetSendWeeks(user User) []WorkWeek { var weeks []WorkWeek qStr, err := DB.Prepare(`SELECT woche_start::DATE FROM buchung_wochen WHERE bestaetigt = FALSE AND personal_nummer = $1;`) if err != nil { log.Println("Error preparing SQL statement", err) return weeks } defer qStr.Close() rows, err := qStr.Query(user.PersonalNummer) if err != nil { log.Println("Error querining db!", err) return weeks } defer rows.Close() for rows.Next() { var week WorkWeek week.User = user if err := rows.Scan(&week.WeekStart); err != nil { log.Println("Error scanning row!", err) return weeks } week.WorkDays = (*WorkDay).GetWorkDays(nil, user.CardUID, week.WeekStart, week.WeekStart.Add(7*24*time.Hour)) weeks = append(weeks, week) } if err = rows.Err(); err != nil { return weeks } return weeks }