From 26317a18552ee49d527e5ad1f42ce02d67a54ca9 Mon Sep 17 00:00:00 2001
From: Pascal Bleser
Date: Fri, 24 Oct 2025 17:12:32 +0200
Subject: [PATCH] groupware: minor: reorganize the route nesting
---
.../pkg/groupware/groupware_route.go | 136 +++++++++---------
1 file changed, 69 insertions(+), 67 deletions(-)
diff --git a/services/groupware/pkg/groupware/groupware_route.go b/services/groupware/pkg/groupware/groupware_route.go
index 6b8ad6cea4..b9b2c9d8cf 100644
--- a/services/groupware/pkg/groupware/groupware_route.go
+++ b/services/groupware/pkg/groupware/groupware_route.go
@@ -60,76 +60,78 @@ const (
func (g *Groupware) Route(r chi.Router) {
r.Get("/", g.Index)
- r.Get("/accounts", g.GetAccounts)
- r.Route("/accounts/all", func(r chi.Router) {
+ r.Route("/accounts", func(r chi.Router) {
r.Get("/", g.GetAccounts)
- r.Route("/mailboxes", func(r chi.Router) {
- r.Get("/", g.GetMailboxesForAllAccounts) // ?role=
- r.Get("/changes", g.GetMailboxChangesForAllAccounts)
- r.Get("/roles", g.GetMailboxRoles) // ?role=
- r.Get("/roles/{role}", g.GetMailboxByRoleForAllAccounts) // ?role=
- })
- r.Route("/emails", func(r chi.Router) {
- r.Get("/", g.GetEmailsForAllAccounts)
- r.Get("/latest/summary", g.GetLatestEmailsSummaryForAllAccounts) // ?limit=10&seen=true&undesirable=true
- })
- r.Get("/quota", g.GetQuotaForAllAccounts)
- })
- r.Route("/accounts/{accountid}", func(r chi.Router) {
- r.Get("/", g.GetAccount)
- r.Route("/identities", func(r chi.Router) {
- r.Get("/", g.GetIdentities)
- r.Get("/{identityid}", g.GetIdentityById)
- r.Post("/", g.AddIdentity)
- r.Patch("/{identityid}", g.ModifyIdentity)
- r.Delete("/{identityid}", g.DeleteIdentity)
- })
- r.Get("/vacation", g.GetVacation)
- r.Put("/vacation", g.SetVacation)
- r.Get("/quota", g.GetQuota)
- r.Route("/mailboxes", func(r chi.Router) {
- r.Get("/", g.GetMailboxes) // ?name=&role=&subcribed=
- r.Get("/{mailbox}", g.GetMailbox)
- r.Get("/{mailbox}/emails", g.GetAllEmailsInMailbox)
- r.Get("/{mailbox}/changes", g.GetMailboxChanges)
- })
- r.Route("/emails", func(r chi.Router) {
- r.Get("/", g.GetEmails) // ?fetchemails=true&fetchbodies=true&text=&subject=&body=&keyword=&keyword=&...
- r.Post("/", g.CreateEmail)
- r.Delete("/", g.DeleteEmails)
- r.Get("/{emailid}", g.GetEmailsById) // Accept:message/rfc822
- r.Put("/{emailid}", g.ReplaceEmail)
- r.Patch("/{emailid}", g.UpdateEmail)
- r.Patch("/{emailid}/keywords", g.UpdateEmailKeywords)
- r.Post("/{emailid}/keywords", g.AddEmailKeywords)
- r.Delete("/{emailid}/keywords", g.RemoveEmailKeywords)
- r.Delete("/{emailid}", g.DeleteEmail)
- Report(r, "/{emailid}", g.RelatedToEmail)
- r.Get("/{emailid}/related", g.RelatedToEmail)
- r.Get("/{emailid}/attachments", g.GetEmailAttachments) // ?partId=&name=?&blobId=?
- })
- r.Route("/blobs", func(r chi.Router) {
- r.Get("/{blobid}", g.GetBlobMeta)
- r.Get("/{blobid}/{blobname}", g.DownloadBlob) // ?type=
- })
- r.Route("/addressbooks", func(r chi.Router) {
- r.Get("/", g.GetAddressbooks)
- r.Get("/{addressbookid}", g.GetAddressbook)
- r.Get("/{addressbookid}/contacts", g.GetContactsInAddressbook)
- r.Route("/contacts", func(r chi.Router) {
- r.Post("/", g.CreateContact)
- r.Delete("/{contactid}", g.DeleteContact)
+ r.Route("/all", func(r chi.Router) {
+ r.Get("/", g.GetAccounts)
+ r.Route("/mailboxes", func(r chi.Router) {
+ r.Get("/", g.GetMailboxesForAllAccounts) // ?role=
+ r.Get("/changes", g.GetMailboxChangesForAllAccounts)
+ r.Get("/roles", g.GetMailboxRoles) // ?role=
+ r.Get("/roles/{role}", g.GetMailboxByRoleForAllAccounts) // ?role=
})
+ r.Route("/emails", func(r chi.Router) {
+ r.Get("/", g.GetEmailsForAllAccounts)
+ r.Get("/latest/summary", g.GetLatestEmailsSummaryForAllAccounts) // ?limit=10&seen=true&undesirable=true
+ })
+ r.Get("/quota", g.GetQuotaForAllAccounts)
})
- r.Route("/calendars", func(r chi.Router) {
- r.Get("/", g.GetCalendars)
- r.Get("/{calendarid}", g.GetCalendarById)
- r.Get("/{calendarid}/events", g.GetEventsInCalendar)
- })
- r.Route("/tasklists", func(r chi.Router) {
- r.Get("/", g.GetTaskLists)
- r.Get("/{tasklistid}", g.GetTaskListById)
- r.Get("/{tasklistid}/tasks", g.GetTasksInTaskList)
+ r.Route("/{accountid}", func(r chi.Router) {
+ r.Get("/", g.GetAccount)
+ r.Route("/identities", func(r chi.Router) {
+ r.Get("/", g.GetIdentities)
+ r.Get("/{identityid}", g.GetIdentityById)
+ r.Post("/", g.AddIdentity)
+ r.Patch("/{identityid}", g.ModifyIdentity)
+ r.Delete("/{identityid}", g.DeleteIdentity)
+ })
+ r.Get("/vacation", g.GetVacation)
+ r.Put("/vacation", g.SetVacation)
+ r.Get("/quota", g.GetQuota)
+ r.Route("/mailboxes", func(r chi.Router) {
+ r.Get("/", g.GetMailboxes) // ?name=&role=&subcribed=
+ r.Get("/{mailbox}", g.GetMailbox)
+ r.Get("/{mailbox}/emails", g.GetAllEmailsInMailbox)
+ r.Get("/{mailbox}/changes", g.GetMailboxChanges)
+ })
+ r.Route("/emails", func(r chi.Router) {
+ r.Get("/", g.GetEmails) // ?fetchemails=true&fetchbodies=true&text=&subject=&body=&keyword=&keyword=&...
+ r.Post("/", g.CreateEmail)
+ r.Delete("/", g.DeleteEmails)
+ r.Get("/{emailid}", g.GetEmailsById) // Accept:message/rfc822
+ r.Put("/{emailid}", g.ReplaceEmail)
+ r.Patch("/{emailid}", g.UpdateEmail)
+ r.Patch("/{emailid}/keywords", g.UpdateEmailKeywords)
+ r.Post("/{emailid}/keywords", g.AddEmailKeywords)
+ r.Delete("/{emailid}/keywords", g.RemoveEmailKeywords)
+ r.Delete("/{emailid}", g.DeleteEmail)
+ Report(r, "/{emailid}", g.RelatedToEmail)
+ r.Get("/{emailid}/related", g.RelatedToEmail)
+ r.Get("/{emailid}/attachments", g.GetEmailAttachments) // ?partId=&name=?&blobId=?
+ })
+ r.Route("/blobs", func(r chi.Router) {
+ r.Get("/{blobid}", g.GetBlobMeta)
+ r.Get("/{blobid}/{blobname}", g.DownloadBlob) // ?type=
+ })
+ r.Route("/addressbooks", func(r chi.Router) {
+ r.Get("/", g.GetAddressbooks)
+ r.Get("/{addressbookid}", g.GetAddressbook)
+ r.Get("/{addressbookid}/contacts", g.GetContactsInAddressbook)
+ r.Route("/contacts", func(r chi.Router) {
+ r.Post("/", g.CreateContact)
+ r.Delete("/{contactid}", g.DeleteContact)
+ })
+ })
+ r.Route("/calendars", func(r chi.Router) {
+ r.Get("/", g.GetCalendars)
+ r.Get("/{calendarid}", g.GetCalendarById)
+ r.Get("/{calendarid}/events", g.GetEventsInCalendar)
+ })
+ r.Route("/tasklists", func(r chi.Router) {
+ r.Get("/", g.GetTaskLists)
+ r.Get("/{tasklistid}", g.GetTaskListById)
+ r.Get("/{tasklistid}/tasks", g.GetTasksInTaskList)
+ })
})
})