mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2025-07-16 09:38:49 +02:00
feat:#65 source code adjusted due to dep changes
This commit is contained in:
44
services/data-manager/migrations/1741706407_updated_users.go
Normal file
44
services/data-manager/migrations/1741706407_updated_users.go
Normal file
@ -0,0 +1,44 @@
|
||||
package migrations
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"github.com/pocketbase/pocketbase/core"
|
||||
m "github.com/pocketbase/pocketbase/migrations"
|
||||
)
|
||||
|
||||
func init() {
|
||||
m.Register(func(app core.App) error {
|
||||
collection, err := app.FindCollectionByNameOrId("_pb_users_auth_")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// update collection data
|
||||
if err := json.Unmarshal([]byte(`{
|
||||
"oauth2": {
|
||||
"enabled": true
|
||||
}
|
||||
}`), &collection); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return app.Save(collection)
|
||||
}, func(app core.App) error {
|
||||
collection, err := app.FindCollectionByNameOrId("_pb_users_auth_")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// update collection data
|
||||
if err := json.Unmarshal([]byte(`{
|
||||
"oauth2": {
|
||||
"enabled": false
|
||||
}
|
||||
}`), &collection); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return app.Save(collection)
|
||||
})
|
||||
}
|
@ -146,3 +146,17 @@ func GetAllCoursesForSemesterWithEvents(app *pocketbase.PocketBase, semester str
|
||||
|
||||
return courseArray, nil
|
||||
}
|
||||
|
||||
func FindCourseByCourseName(app *pocketbase.PocketBase, courseName string) (model.SeminarGroup, error) {
|
||||
|
||||
var course SeminarGroup
|
||||
|
||||
// get the course by its name
|
||||
err := app.DB().Select("*").From("groups").Where(dbx.NewExp("course = {:course}", dbx.Params{"course": courseName})).One(&course)
|
||||
if err != nil {
|
||||
slog.Error("Error while getting group from database: ", "error", err)
|
||||
return model.SeminarGroup{}, err
|
||||
}
|
||||
|
||||
return course.toSeminarGroupModel(), nil
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ func GetRooms(app *pocketbase.PocketBase) ([]string, error) {
|
||||
}
|
||||
|
||||
// get all rooms from event records in the events collection
|
||||
err := app.Dao().DB().Select("Rooms", "course").From("events").Distinct(true).All(&events)
|
||||
err := app.DB().Select("Rooms", "course").From("events").Distinct(true).All(&events)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -83,7 +83,7 @@ func GetRoomScheduleForDay(app *pocketbase.PocketBase, room string, date string)
|
||||
var events []model.Event
|
||||
|
||||
// get all events from event records in the events collection
|
||||
err := app.Dao().DB().Select("*").From("events").
|
||||
err := app.DB().Select("*").From("events").
|
||||
Where(dbx.Like("Rooms", room).Escape("_", "_")).
|
||||
AndWhere(dbx.Like("Start", date)).
|
||||
GroupBy("Week", "Start", "End", "Rooms").
|
||||
@ -94,6 +94,21 @@ func GetRoomScheduleForDay(app *pocketbase.PocketBase, room string, date string)
|
||||
return events, nil
|
||||
}
|
||||
|
||||
func GetRoomSchedule(app *pocketbase.PocketBase, room string) ([]model.Event, error) {
|
||||
var events []model.Event
|
||||
|
||||
// get all events from event records in the events collection
|
||||
err := app.DB().Select("*").From("events").
|
||||
Where(dbx.Like("Rooms", room).Escape("_", "_")).
|
||||
GroupBy("Week", "Start", "End", "Rooms").
|
||||
All(&events)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return events, nil
|
||||
|
||||
}
|
||||
|
||||
func GetRoomScheduleInTimeSpan(app *pocketbase.PocketBase, room string, from string, to string) ([]model.Event, error) {
|
||||
var events []model.Event
|
||||
|
||||
@ -107,7 +122,7 @@ func GetRoomScheduleInTimeSpan(app *pocketbase.PocketBase, room string, from str
|
||||
}
|
||||
|
||||
// get all events from event records in the events collection
|
||||
err = app.Dao().DB().Select("*").From("events").
|
||||
err = app.DB().Select("*").From("events").
|
||||
Where(dbx.Like("Rooms", room).Escape("_", "_")).
|
||||
AndWhere(dbx.Between("Start", fromDate, toDate)).
|
||||
GroupBy("Week", "Start", "End", "Rooms").
|
||||
@ -118,17 +133,3 @@ func GetRoomScheduleInTimeSpan(app *pocketbase.PocketBase, room string, from str
|
||||
}
|
||||
return events, nil
|
||||
}
|
||||
|
||||
func GetRoomSchedule(app *pocketbase.PocketBase, room string) ([]model.Event, error) {
|
||||
var events []model.Event
|
||||
|
||||
// get all events from event records in the events collection
|
||||
err := app.Dao().DB().Select("*").From("events").
|
||||
Where(dbx.Like("Rooms", room).Escape("_", "_")).
|
||||
GroupBy("Week", "Start", "End", "Rooms").
|
||||
All(&events)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return events, nil
|
||||
}
|
||||
|
@ -112,7 +112,7 @@ func (s *PocketBaseEventService) GetModuleByUUID(uuid string) (model.Module, err
|
||||
// If the deletion was successful, nil is returned
|
||||
// If the deletion was not successful, an error is returned
|
||||
func (s *PocketBaseEventService) DeleteAllEventsByCourseAndSemester(course string, semester string) error {
|
||||
err := db.DeleteAllEventsByCourse(s.app.Dao(), course, semester)
|
||||
err := db.DeleteAllEventsByCourse(s.app, course, semester)
|
||||
if err != nil {
|
||||
return err
|
||||
} else {
|
||||
@ -151,7 +151,7 @@ func (s *PocketBaseEventService) UpdateModulesForCourse(seminarGroup model.Semin
|
||||
//if there are no events in the database, save the new events
|
||||
|
||||
//get all events for the course and the semester
|
||||
dbEvents, err := db.GetAllEventsForCourseAndSemester(s.app, seminarGroup.Course, seminarGroup.Semester)
|
||||
dbEvents, err := db.GetAllEventsForCourse(s.app, seminarGroup.Course)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -191,13 +191,13 @@ func (s *PocketBaseEventService) UpdateModulesForCourse(seminarGroup model.Semin
|
||||
}
|
||||
|
||||
// save all events that are in the insertList
|
||||
savedEvents, err := db.SaveEvents(insertList, s.app.Dao())
|
||||
savedEvents, err := db.SaveEvents(insertList, s.app)
|
||||
if err != nil {
|
||||
slog.Error("Failed to save events: ", "error", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
slog.Info("Course: " + seminarGroup.Course + " [" + seminarGroup.Semester + "] - Events: " + strconv.FormatInt(int64(len(savedEvents)), 10) + " new, " + strconv.FormatInt(int64(len(deleteList)), 10) + " deleted" + ", " + strconv.FormatInt(int64(len(dbEvents)-len(deleteList)+len(savedEvents)), 10) + " total")
|
||||
slog.Info("Course: " + seminarGroup.Course + " - Event changes: " + strconv.FormatInt(int64(len(insertList)), 10) + " new events, " + strconv.FormatInt(int64(len(deleteList)), 10) + " deleted events")
|
||||
return savedEvents, nil
|
||||
}
|
||||
|
||||
|
@ -82,13 +82,13 @@ func FetchAndUpdateSportEvents(app *pocketbase.PocketBase) ([]model.Event, error
|
||||
}
|
||||
|
||||
// @TODO: delete and save events in one transaction and it only should delete events that are not in the new events list and save events that are not in the database
|
||||
err = db.DeleteAllEventsByCourse(app.Dao(), "Sport", functions.GetCurrentSemesterString(clock.RealClock{}))
|
||||
err = db.DeleteAllEventsByCourse(app, "Sport", functions.GetCurrentSemesterString(clock.RealClock{}))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// save events to database
|
||||
savedEvents, err := db.SaveEvents(events, app.Dao())
|
||||
savedEvents, err := db.SaveEvents(events, app)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
Reference in New Issue
Block a user