Verbessere Dokumentation
This commit is contained in:
parent
ec24c6c4dc
commit
fe54d76ab2
14 changed files with 75 additions and 34 deletions
|
@ -1,4 +1,3 @@
|
|||
// course
|
||||
package repositories
|
||||
|
||||
import (
|
||||
|
@ -9,6 +8,7 @@ import (
|
|||
"officeHours/models"
|
||||
)
|
||||
|
||||
// A struct to hold the db connection
|
||||
type CourseRepo struct {
|
||||
db *sql.DB
|
||||
}
|
||||
|
@ -38,6 +38,7 @@ func (r *CourseRepo) GetAll() ([]models.Course, error) {
|
|||
return r.getFromRows(rows)
|
||||
}
|
||||
|
||||
// Helper function to get a course from multiple SQL result rows
|
||||
func (r *CourseRepo) getFromRows(rows *sql.Rows) ([]models.Course, error) {
|
||||
var courses []models.Course
|
||||
for rows.Next() {
|
||||
|
@ -51,6 +52,7 @@ func (r *CourseRepo) getFromRows(rows *sql.Rows) ([]models.Course, error) {
|
|||
return courses, nil
|
||||
}
|
||||
|
||||
// Helper function to get a course from an SQL result row
|
||||
func (r *CourseRepo) getFromRow(row *sql.Row) (models.Course, error) {
|
||||
var course models.Course
|
||||
if err := row.Scan(&course.Id, &course.Name); err != nil {
|
||||
|
|
|
@ -89,6 +89,10 @@ func (r *OfficeHourRepo) FindById(id int) (models.OfficeHour, error) {
|
|||
return r.getFromRow(r.db.QueryRow("SELECT * FROM officeHour WHERE id=?", id))
|
||||
}
|
||||
|
||||
// Add an office hour if it doesn't exist yet.
|
||||
// Also add the incluyey tutor if it doesn't exist yet.
|
||||
//
|
||||
// Returns the id of the new office hour.
|
||||
func (r *OfficeHourRepo) Add(officeHour models.OfficeHour) (int, error) {
|
||||
// Find correct tutor or add if not existent
|
||||
_, err := r.tutorRepo.Add(officeHour.Tutor)
|
||||
|
@ -215,6 +219,7 @@ func (r *OfficeHourRepo) getFromRows(rows *sql.Rows) ([]models.OfficeHour, error
|
|||
return officeHours, nil
|
||||
}
|
||||
|
||||
// Get the number of office hours that are maximally parallel during a time span.
|
||||
func (r *OfficeHourRepo) NumberByTimeSpanAndRoom(date models.Date, duration int, room models.Room, activeOnly bool) (int, error) {
|
||||
var rows *sql.Rows
|
||||
var err error
|
||||
|
@ -252,6 +257,7 @@ func (r *OfficeHourRepo) NumberByTimeSpanAndRoom(date models.Date, duration int,
|
|||
return count, nil
|
||||
}
|
||||
|
||||
// Check whether the room capacity allows for another office hour during a time span.
|
||||
func (r *OfficeHourRepo) AllowedAt(date models.Date, duration int, room models.Room, activeOnly bool) (bool, error) {
|
||||
numberOfOfficeHours, err := r.NumberByTimeSpanAndRoom(date, duration, room, activeOnly)
|
||||
if err != nil {
|
||||
|
|
|
@ -68,6 +68,8 @@ func (r *RequestRepo) FindByOfficeHour(officeHour models.OfficeHour) ([]models.R
|
|||
return requests, nil
|
||||
}
|
||||
|
||||
// Add a request to the database if it doesnt already exist.
|
||||
// Send a mail with the secret to the confirmation address in any case.
|
||||
func (r *RequestRepo) Add(officeHour models.OfficeHour, action int) (int, error) {
|
||||
existents, err := r.FindByOfficeHour(officeHour)
|
||||
if err != nil && !errors.Is(err, sql.ErrNoRows) {
|
||||
|
@ -97,6 +99,7 @@ func (r *RequestRepo) Add(officeHour models.OfficeHour, action int) (int, error)
|
|||
return request.Id, r.sendConfirmationMail(request)
|
||||
}
|
||||
|
||||
// Execute a request and delete it.
|
||||
func (r *RequestRepo) Execute(request models.Request) error {
|
||||
var err error
|
||||
switch request.Action {
|
||||
|
@ -107,11 +110,13 @@ func (r *RequestRepo) Execute(request models.Request) error {
|
|||
err = r.officeHourRepo.Delete(request.OfficeHour)
|
||||
r.db.Exec("DELETE FROM request WHERE officeHour=?", request.OfficeHour.Id)
|
||||
default:
|
||||
log.Printf("Executing request: Action type %d unknown.", request.Action)
|
||||
_, err = r.db.Exec("DELETE FROM request WHERE id=?", request.Id)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
// Find a new secret token with configured length that is currently unused.
|
||||
func (r *RequestRepo) newSecret() (string, error) {
|
||||
var err error
|
||||
var secret string
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
// raum
|
||||
package repositories
|
||||
|
||||
import (
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue