Work on AS activities and objects
All checks were successful
/ docker (push) Successful in 4m15s

This commit is contained in:
Melody Becker 2025-04-29 21:35:58 +02:00
parent d32818af09
commit cfa0566c6d
Signed by: mstar
SSH key fingerprint: SHA256:vkXfS9FG2pVNVfvDrzd1VW9n8VJzqqdKQGljxxX8uK8
39 changed files with 2276 additions and 183 deletions

View file

@ -31,6 +31,12 @@ func Migrate(db *gorm.DB) error {
if err := createRemoteServerSoftwareType(db); err != nil {
return other.Error("storage", "Failed to create Server Software type", err)
}
if err := createActitiystreamsObjectType(db); err != nil {
return other.Error("storage", "Failed to create Activitystreams Object type", err)
}
if err := createActitiystreamsActivityType(db); err != nil {
return other.Error("storage", "Failed to create Activitystreams Activity type", err)
}
if err := migrateTypes(db); err != nil {
return other.Error("storage", "Failed to automigrate data structs", err)
}
@ -87,6 +93,39 @@ func createRemoteServerSoftwareType(db *gorm.DB) error {
)
}
func createActitiystreamsObjectType(db *gorm.DB) error {
return migrateEnum(
db,
"activitystreams_object_type",
sliceutils.Map(
models.AllActivitystreamsObjectTypes,
func(t models.ActivitystreamsObjectType) string { return string(t) },
),
)
}
func createActitiystreamsActivityType(db *gorm.DB) error {
return migrateEnum(
db,
"activitystreams_activity_type",
sliceutils.Map(
models.AllActivitystreamsActivityTypes,
func(t models.ActivitystreamsActivityType) string { return string(t) },
),
)
}
func createActitiystreamsActivityTargetType(db *gorm.DB) error {
return migrateEnum(
db,
"activitystreams_activity_target_type",
sliceutils.Map(
models.AllActivitystreamsActivityTargetTypes,
func(t models.ActivitystreamsActivityTargetType) string { return string(t) },
),
)
}
// Helper function for ensuring the existence of an enum with the given values
func migrateEnum(db *gorm.DB, name string, values []string) error {
if err := db.Exec("DROP TYPE IF EXISTS " + name + " CASCADE;").Error; err != nil {