Files
htwkalender/backend/service/events/courseService.go
2024-04-02 11:34:47 +02:00

55 lines
1.8 KiB
Go

//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format.
//Copyright (C) 2024 HTWKalender support@htwkalender.de
//This program is free software: you can redistribute it and/or modify
//it under the terms of the GNU Affero General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//GNU Affero General Public License for more details.
//You should have received a copy of the GNU Affero General Public License
//along with this program. If not, see <https://www.gnu.org/licenses/>.
package events
import (
"github.com/pocketbase/pocketbase"
"htwkalender/service/db"
"htwkalender/service/functions"
)
func GetAllCourses(app *pocketbase.PocketBase) []string {
return db.GetAllCourses(app)
}
func GetAllCoursesForSemester(app *pocketbase.PocketBase, semester string) []string {
return db.GetAllCoursesForSemester(app, semester)
}
func GetAllCoursesForSemesterWithEvents(app *pocketbase.PocketBase, semester string) ([]string, error) {
courses, err := db.GetAllCoursesForSemesterWithEvents(app, semester)
if err != nil {
return nil, err
} else {
// remove empty courses like " " or ""
courses = removeEmptyCourses(courses)
return courses, nil
}
}
// removeEmptyCourses removes empty courses from the list of courses
func removeEmptyCourses(courses []string) []string {
var filteredCourses []string
for index, course := range courses {
if !functions.OnlyWhitespace(course) || len(course) != 0 {
filteredCourses = append(filteredCourses, courses[index])
}
}
return filteredCourses
}