fix:#75 refactoring duplicate function

This commit is contained in:
Elmar Kresse
2025-04-27 13:53:34 +02:00
parent f34a8dfb9f
commit 57c2fcb7ad
8 changed files with 238 additions and 151 deletions

View File

@@ -18,7 +18,6 @@ package v2
import (
"fmt"
"github.com/google/uuid"
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/core"
"golang.org/x/net/html"
@@ -169,7 +168,7 @@ func parseEventForOneSemester(url string) ([]model.Event, error) {
return nil, err
}
events = switchNameAndNotesForExam(events)
events = generateUUIDs(events)
events = functions.GenerateUUIDs(events)
return events, nil
}
@@ -194,14 +193,3 @@ func parseHTML(webpage string) (*html.Node, error) {
}
return doc, nil
}
// generateUUIDs generates a UUID for each event based on the event name, course and semester
// the UUID is used to identify the event in the database
func generateUUIDs(events []model.Event) []model.Event {
for i, event := range events {
// generate a hash value from the event name, course and semester
hash := uuid.NewSHA1(uuid.NameSpaceOID, []byte(event.Name+event.Course))
events[i].UUID = hash.String()
}
return events
}

View File

@@ -97,79 +97,3 @@ func TestSwitchNameAndNotesForExam(t *testing.T) {
})
}
}
func Test_generateUUIDs(t *testing.T) {
type args struct {
events []model.Event
}
tests := []struct {
name string
args args
want []model.Event
}{
{
name: "generate UUIDs for events",
args: args{
events: []model.Event{
{
EventType: "Vorlesung",
Name: "Computer Vision II",
Course: "Computer Vision",
UUID: "",
},
{
EventType: "Pruefung",
Name: "C169 Digitale Bildverarbeitung MIM & INM 3. FS (wpf)",
Course: "23INM",
UUID: "",
},
{
EventType: "Vorlesung",
Name: "C398 Visualisierung in NW und Technik IN-M & MI-M 2. FS (wpf)",
Course: "24INM",
UUID: "",
},
{
EventType: "Vorlesung",
Name: "M947 Fluidenergiemaschinen EGB (pf) & MBB & SGB (wpf) 4.FS",
Course: "23EGB-EGTa",
UUID: "",
},
},
},
want: []model.Event{
{
EventType: "Vorlesung",
Name: "Computer Vision II",
Course: "Computer Vision",
UUID: "8ddd913c-27f0-58b2-be17-e50f2851d482",
},
{
EventType: "Pruefung",
Name: "C169 Digitale Bildverarbeitung MIM & INM 3. FS (wpf)",
Course: "23INM",
UUID: "2a35348d-63ce-511c-8580-893321d104b9",
},
{
EventType: "Vorlesung",
Name: "C398 Visualisierung in NW und Technik IN-M & MI-M 2. FS (wpf)",
Course: "24INM",
UUID: "6051ebd9-dd2b-5646-82c4-091667f414ee",
},
{
EventType: "Vorlesung",
Name: "M947 Fluidenergiemaschinen EGB (pf) & MBB & SGB (wpf) 4.FS",
Course: "23EGB-EGTa",
UUID: "736764e1-fa78-5195-8280-76c996dc8b47",
},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := generateUUIDs(tt.args.events); !reflect.DeepEqual(got, tt.want) {
t.Errorf("generateUUIDs() = %v, want %v", got, tt.want)
}
})
}
}