From 6d950e1c8daac02f19c0007c44ee9b9be9c9e7b4 Mon Sep 17 00:00:00 2001 From: Elmar Kresse Date: Sun, 4 Feb 2024 19:23:18 +0100 Subject: [PATCH] fix:#22 changed linting errors --- .gitlab-ci.yml | 2 +- backend/service/events/eventService.go | 11 ++++++---- backend/service/fetch/sport/sportFetcher.go | 6 +----- .../fetch/v1/fetchSeminarEventService.go | 20 +++++++++++++++---- .../fetch/v1/fetchSeminarEventService_test.go | 4 ++-- backend/service/fetch/v2/eventParser.go | 14 ------------- backend/service/fetch/v2/fetcher.go | 12 ++++++++--- 7 files changed, 36 insertions(+), 33 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b1a5f99..b77a041 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -25,7 +25,7 @@ lint-backend: - cd backend - go mod download - golangci-lint --version - - golangci-lint run -v + - golangci-lint run -v --skip-dirs=migrations build-backend: diff --git a/backend/service/events/eventService.go b/backend/service/events/eventService.go index f649d22..409d351 100644 --- a/backend/service/events/eventService.go +++ b/backend/service/events/eventService.go @@ -53,11 +53,14 @@ func GetAllModulesDistinct(app *pocketbase.PocketBase) ([]model.ModuleDTO, error } func GetModuleByUUID(app *pocketbase.PocketBase, uuid string) (model.Module, error) { - module, err := db.FindModuleByUUID(app, uuid) - events, err := db.FindAllEventsByModule(app, module) + module, findModuleErr := db.FindModuleByUUID(app, uuid) + if findModuleErr != nil { + return model.Module{}, findModuleErr + } - if err != nil || len(events) == 0 { - return model.Module{}, err + events, findEventsError := db.FindAllEventsByModule(app, module) + if findEventsError != nil || len(events) == 0 { + return model.Module{}, findEventsError } else { return model.Module{ UUID: events[0].UUID, diff --git a/backend/service/fetch/sport/sportFetcher.go b/backend/service/fetch/sport/sportFetcher.go index 6f7dbb8..2265aa2 100644 --- a/backend/service/fetch/sport/sportFetcher.go +++ b/backend/service/fetch/sport/sportFetcher.go @@ -167,13 +167,9 @@ func extractStartAndEndTime(cycle string) (int, int, int, int) { } func getWeekEvents(start time.Time, end time.Time, cycle string) ([]time.Time, []time.Time) { - var weekEvents []model.SportDayStartEnd - // split by regexp to get the cycle parts - var cycleParts []string - cycleParts = splitByCommaWithTime(cycle) - + var cycleParts = splitByCommaWithTime(cycle) for _, cyclePart := range cycleParts { //cut string at the first integer/number diff --git a/backend/service/fetch/v1/fetchSeminarEventService.go b/backend/service/fetch/v1/fetchSeminarEventService.go index 6228ca6..1171984 100644 --- a/backend/service/fetch/v1/fetchSeminarEventService.go +++ b/backend/service/fetch/v1/fetchSeminarEventService.go @@ -9,6 +9,7 @@ import ( "htwkalender/service/date" "htwkalender/service/fetch" "htwkalender/service/functions" + "log/slog" "regexp" "strconv" "strings" @@ -61,9 +62,14 @@ func GetSeminarGroupsEventsFromHTML(seminarGroupsLabel []string) []model.Seminar return seminarGroups } -func splitEventType(events []model.Event) []model.Event { +func SplitEventType(events []model.Event) ([]model.Event, error) { + re, err := regexp.Compile("^([VPS])([wp])$") + if err != nil { + return nil, err + } + for i, event := range events { - matched, _ := regexp.Match("^([VPS])([wp])$", []byte(event.EventType)) + matched := re.Match([]byte(event.EventType)) if matched { eventType := event.EventType event.EventType = eventType[0:1] @@ -71,7 +77,7 @@ func splitEventType(events []model.Event) []model.Event { events[i] = event } } - return events + return events, nil } func parseSeminarGroup(result string) model.SeminarGroup { @@ -97,7 +103,13 @@ func parseSeminarGroup(result string) model.SeminarGroup { semester, year := extractSemesterAndYear(semesterString) events = convertWeeksToDates(events, semester, year) events = generateUUIDs(events, course) - events = splitEventType(events) + events, err = SplitEventType(events) + + if err != nil { + slog.Error("Error occurred while splitting event types: %s", err) + return model.SeminarGroup{} + } + var seminarGroup = model.SeminarGroup{ University: findFirstSpanWithClass(table, "header-1-0-0").FirstChild.Data, Course: course, diff --git a/backend/service/fetch/v1/fetchSeminarEventService_test.go b/backend/service/fetch/v1/fetchSeminarEventService_test.go index b86e6e8..aa80ce1 100644 --- a/backend/service/fetch/v1/fetchSeminarEventService_test.go +++ b/backend/service/fetch/v1/fetchSeminarEventService_test.go @@ -205,8 +205,8 @@ func Test_splitEventType(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if got := splitEventType(tt.args.events); !reflect.DeepEqual(got, tt.want) { - t.Errorf("splitEventType() = %v, want %v", got, tt.want) + if got, _ := SplitEventType(tt.args.events); !reflect.DeepEqual(got, tt.want) { + t.Errorf("SplitEventType() = %v, want %v", got, tt.want) } }) } diff --git a/backend/service/fetch/v2/eventParser.go b/backend/service/fetch/v2/eventParser.go index 9824fc8..921c242 100644 --- a/backend/service/fetch/v2/eventParser.go +++ b/backend/service/fetch/v2/eventParser.go @@ -6,7 +6,6 @@ import ( "htwkalender/model" "htwkalender/service/date" "htwkalender/service/functions" - "regexp" "strings" ) @@ -50,16 +49,3 @@ func toEvents(tables [][]*html.Node, days []string) []model.Event { } return events } - -func splitEventType(events []model.Event) []model.Event { - for i, event := range events { - matched, _ := regexp.Match("^([VPS])([wp])$", []byte(event.EventType)) - if matched { - eventType := event.EventType - event.EventType = eventType[0:1] - event.Compulsory = eventType[1:2] - events[i] = event - } - } - return events -} diff --git a/backend/service/fetch/v2/fetcher.go b/backend/service/fetch/v2/fetcher.go index b1e70b0..c05ad79 100644 --- a/backend/service/fetch/v2/fetcher.go +++ b/backend/service/fetch/v2/fetcher.go @@ -8,7 +8,9 @@ import ( "htwkalender/model" "htwkalender/service/db" "htwkalender/service/fetch" + v1 "htwkalender/service/fetch/v1" localTime "htwkalender/service/functions/time" + "log/slog" "strings" ) @@ -86,7 +88,7 @@ func parseEventForOneSemester(url string) ([]model.Event, error) { // Parse HTML to Node Tree var doc *html.Node - doc, err = parseHTML(webpage, err) + doc, err = parseHTML(webpage) if err != nil { return nil, err } @@ -113,7 +115,11 @@ func parseEventForOneSemester(url string) ([]model.Event, error) { semesterString := findFirstSpanWithClass(table, "header-0-2-0").FirstChild.Data semester, year := extractSemesterAndYear(semesterString) events = convertWeeksToDates(events, semester, year) - events = splitEventType(events) + events, err = v1.SplitEventType(events) + if err != nil { + slog.Error("Error occurred while splitting event types: %s", err) + return nil, err + } events = switchNameAndNotesForExam(events) events = generateUUIDs(events) @@ -133,7 +139,7 @@ func switchNameAndNotesForExam(events []model.Event) []model.Event { return events } -func parseHTML(webpage string, err error) (*html.Node, error) { +func parseHTML(webpage string) (*html.Node, error) { doc, err := html.Parse(strings.NewReader(webpage)) if err != nil { return nil, err