refactored and extracted new functions

This commit is contained in:
masterelmar
2023-10-23 16:58:28 +02:00
parent e20dde27fb
commit 9c048c40df
4 changed files with 152 additions and 23 deletions

View File

@@ -7,15 +7,15 @@ import (
)
func SaveEvents(seminarGroup []model.SeminarGroup, app *pocketbase.PocketBase) ([]model.Event, error) {
var toBeSavedEvents []model.Event
var savedRecords []model.Event
var toBeSavedEvents model.Events
var savedRecords model.Events
// check if event is already in database and add to toBeSavedEvents if not
for _, seminarGroup := range seminarGroup {
for _, event := range seminarGroup.Events {
event = event.SetCourse(seminarGroup.Course)
dbGroup, err := findEventByDayWeekStartEndNameCourse(event, seminarGroup.Course, app)
if dbGroup.UUID != "" && err.Error() == "sql: no rows in result set" && !containsEvent(toBeSavedEvents, event) {
if dbGroup.UUID != "" && err.Error() == "sql: no rows in result set" && toBeSavedEvents.Contains(event) == false {
toBeSavedEvents = append(toBeSavedEvents, event)
}
}
@@ -36,24 +36,6 @@ func SaveEvents(seminarGroup []model.SeminarGroup, app *pocketbase.PocketBase) (
return savedRecords, nil
}
func containsEvent(events []model.Event, event model.Event) bool {
for _, e := range events {
if e.Day == event.Day &&
e.Week == event.Week &&
e.Start == event.Start &&
e.End == event.End &&
e.Name == event.Name &&
e.Course == event.Course &&
e.Prof == event.Prof &&
e.Rooms == event.Rooms &&
e.EventType == event.EventType {
return true
}
}
return false
}
func findEventByDayWeekStartEndNameCourse(event model.Event, course string, app *pocketbase.PocketBase) (*model.Event, error) {
err := app.Dao().DB().Select("*").From("events").Where(
dbx.NewExp("Day = {:day} AND Week = {:week} AND Start = {:start} AND End = {:end} AND Name = {:name} AND course = {:course} AND Prof = {:prof} AND Rooms = {:rooms} AND EventType = {:eventType}",

View File

@@ -50,7 +50,7 @@ func replaceNameIfUserDefined(name string, mapping []model.FeedCollection) strin
return name
}
func generateDescription(event *model.Event) string {
func generateDescription(event model.Event) string {
var description string
if !functions.OnlyWhitespace(event.Notes) {