update fetch and fixed bug

This commit is contained in:
masterelmar
2023-08-23 19:16:23 +02:00
parent 72382a3c6a
commit 0686b9397f
8 changed files with 399 additions and 66 deletions

72
service/db/dbEvents.go Normal file
View File

@@ -0,0 +1,72 @@
package db
import (
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/models"
"htwk-planner/model"
"strings"
)
func SaveEvents(seminarGroup []model.SeminarGroup, collection *models.Collection, app *pocketbase.PocketBase) error {
for _, seminarGroup := range seminarGroup {
for _, event := range seminarGroup.Events {
var err error = nil
record := models.NewRecord(collection)
record.Set("Day", event.Day)
record.Set("Week", event.Week)
record.Set("Start", event.Start)
record.Set("End", event.End)
record.Set("Name", event.Name)
record.Set("EventType", event.EventType)
record.Set("Prof", event.Prof)
record.Set("Rooms", event.Rooms)
record.Set("Notes", event.Notes)
record.Set("BookedAt", event.BookedAt)
record.Set("course", seminarGroup.Course)
err = app.Dao().SaveRecord(record)
if err != nil {
println("Error while saving record: ", err.Error())
}
}
}
return nil
}
func contains(s []string, e string) bool {
for _, a := range s {
if a == e {
return true
}
}
return false
}
// GetRooms function to get all rooms from database that are stored as a string in the Events struct
func GetRooms(app *pocketbase.PocketBase) []string {
var events []struct {
Rooms string `db:"Rooms" json:"Rooms"`
}
// get all rooms from event records in the events collection
err := app.Dao().DB().Select("Rooms").From("events").All(&events)
if err != nil {
print("Error while getting rooms from database: ", err)
return nil
}
var roomArray []string
for _, event := range events {
var room = strings.Split(event.Rooms, " ")
//split string room by space and add each room to array if it is not already in there
for _, r := range room {
var text = strings.TrimSpace(r)
if !contains(roomArray, text) && !strings.Contains(text, " ") && len(text) >= 1 {
roomArray = append(roomArray, text)
}
}
}
return roomArray
}