diff --git a/controllers/debug.go b/controllers/debug.go index bfadc4d..66bdefb 100644 --- a/controllers/debug.go +++ b/controllers/debug.go @@ -101,3 +101,56 @@ func DebugFakeContacts(c *fiber.Ctx) error { "Created %d contact(s)", number, )) } + +func DebugFixFieldsOrder(c *fiber.Ctx) error { + db, err := helpers.GetDatabase() + if err != nil { + return err + } + + var memberFields []models.Field + result := db.Order( + "name collate nocase asc", + ).Find( + &memberFields, "person_type = ?", "member", + ) + + if result.Error != nil { + return result.Error + } + + if result.RowsAffected > 0 { + position := 1 + for _, field := range memberFields { + field.Position = position + db.Save(&field) + position++ + } + } + + var contactFields []models.Field + result2 := db.Order( + "name collate nocase asc", + ).Find( + &contactFields, "person_type = ?", "contact", + ) + + if result2.Error != nil { + return result.Error + } + + if result2.RowsAffected > 0 { + position := 1 + for _, field := range contactFields { + field.Position = position + db.Save(&field) + position++ + } + } + + return c.SendString(fmt.Sprintf( + "Fixed fields -> members: %d, contacts: %d", + result.RowsAffected, + result2.RowsAffected, + )) +} diff --git a/main.go b/main.go index 2765d64..9d79f3e 100644 --- a/main.go +++ b/main.go @@ -231,6 +231,7 @@ func main() { if config.Debug { app.Get("/debug/fake-members/:number", controllers.DebugFakeMembers) app.Get("/debug/fake-contacts/:number", controllers.DebugFakeContacts) + app.Get("/debug/fix-fields-order", controllers.DebugFixFieldsOrder) } log.Info(