mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2025-08-08 20:57:45 +02:00
fix:#41 refactored services
This commit is contained in:
@@ -22,32 +22,51 @@ import (
|
||||
"htwkalender/data-manager/service/functions"
|
||||
)
|
||||
|
||||
func GetAllCourses(app *pocketbase.PocketBase) []string {
|
||||
return db.GetAllCourses(app)
|
||||
// CourseService defines the methods to be implemented
|
||||
type CourseService interface {
|
||||
GetAllCourses() []string
|
||||
GetAllCoursesForSemester(semester string) []string
|
||||
GetAllCoursesForSemesterWithEvents(semester string) ([]string, error)
|
||||
}
|
||||
|
||||
func GetAllCoursesForSemester(app *pocketbase.PocketBase, semester string) []string {
|
||||
return db.GetAllCoursesForSemester(app, semester)
|
||||
// PocketBaseCourseService is a struct that implements the CourseService interface
|
||||
type PocketBaseCourseService struct {
|
||||
app *pocketbase.PocketBase
|
||||
}
|
||||
|
||||
func GetAllCoursesForSemesterWithEvents(app *pocketbase.PocketBase, semester string) ([]string, error) {
|
||||
courses, err := db.GetAllCoursesForSemesterWithEvents(app, semester)
|
||||
// NewPocketBaseCourseService creates a new PocketBaseCourseService
|
||||
func NewPocketBaseCourseService(app *pocketbase.PocketBase) *PocketBaseCourseService {
|
||||
return &PocketBaseCourseService{app: app}
|
||||
}
|
||||
|
||||
// GetAllCourses returns all courses
|
||||
func (s *PocketBaseCourseService) GetAllCourses() []string {
|
||||
return db.GetAllCourses(s.app)
|
||||
}
|
||||
|
||||
// GetAllCoursesForSemester returns all courses for a specific semester
|
||||
func (s *PocketBaseCourseService) GetAllCoursesForSemester(semester string) []string {
|
||||
return db.GetAllCoursesForSemester(s.app, semester)
|
||||
}
|
||||
|
||||
// GetAllCoursesForSemesterWithEvents returns all courses for a specific semester with events
|
||||
func (s *PocketBaseCourseService) GetAllCoursesForSemesterWithEvents(semester string) ([]string, error) {
|
||||
courses, err := db.GetAllCoursesForSemesterWithEvents(s.app, semester)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
// remove empty courses like " " or ""
|
||||
courses = removeEmptyCourses(courses)
|
||||
return courses, nil
|
||||
}
|
||||
// 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 {
|
||||
for _, course := range courses {
|
||||
if !functions.OnlyWhitespace(course) || len(course) != 0 {
|
||||
filteredCourses = append(filteredCourses, courses[index])
|
||||
filteredCourses = append(filteredCourses, course)
|
||||
}
|
||||
}
|
||||
return filteredCourses
|
||||
|
Reference in New Issue
Block a user