From 8df4ef67a28a5e6109de299b31be8ca402f044c3 Mon Sep 17 00:00:00 2001
From: Pascal Bleser
Date: Tue, 1 Jul 2025 10:29:35 +0200
Subject: [PATCH] groupware: remove unneeded messages.go that was a remainder
from an earlier implementation attempt, which also fixes compilation issues
due to changes in main
---
.../pkg/service/v0/groupware/groupware.go | 4 +-
services/graph/pkg/service/v0/messages.go | 83 -------------------
2 files changed, 3 insertions(+), 84 deletions(-)
delete mode 100644 services/graph/pkg/service/v0/messages.go
diff --git a/services/graph/pkg/service/v0/groupware/groupware.go b/services/graph/pkg/service/v0/groupware/groupware.go
index 863ebbbb2f..f8a682084e 100644
--- a/services/graph/pkg/service/v0/groupware/groupware.go
+++ b/services/graph/pkg/service/v0/groupware/groupware.go
@@ -215,7 +215,9 @@ func (g Groupware) GetMessages(w http.ResponseWriter, r *http.Request) {
}
inboxId := pickInbox(mailboxGetResponse.List)
- // TODO handle not found
+ if inboxId == "" {
+ return nil, fmt.Errorf("failed to find an inbox folder")
+ }
logger = log.Logger{Logger: logger.With().Str(logFolderId, inboxId).Logger()}
emails, err := g.jmapClient.GetEmails(session, ctx, &logger, inboxId, offset, limit, true, g.maxBodyValueBytes)
diff --git a/services/graph/pkg/service/v0/messages.go b/services/graph/pkg/service/v0/messages.go
deleted file mode 100644
index 91ba0d1afc..0000000000
--- a/services/graph/pkg/service/v0/messages.go
+++ /dev/null
@@ -1,83 +0,0 @@
-package svc
-
-import (
- "net/http"
- "slices"
- "strings"
-
- "github.com/CiscoM31/godata"
- "github.com/go-chi/render"
- "github.com/opencloud-eu/opencloud/services/graph/pkg/errorcode"
- "github.com/opencloud-eu/opencloud/services/graph/pkg/identity"
- revactx "github.com/opencloud-eu/reva/v2/pkg/ctx"
- libregraph "github.com/opencloud-eu/libre-graph-api-go"
-)
-
-// GetMessages implements the Service interface.
-func (g Graph) GetMessages(w http.ResponseWriter, r *http.Request) {
- logger := g.logger.SubloggerWithRequestID(r.Context())
- logger.Debug().Msg("calling get messages in /me")
- sanitizedPath := strings.TrimPrefix(r.URL.Path, "/graph/v1.0/")
-
- odataReq, err := godata.ParseRequest(r.Context(), sanitizedPath, r.URL.Query())
- if err != nil {
- logger.Debug().Err(err).Interface("query", r.URL.Query()).Msg("could not get messages: query error")
- errorcode.InvalidRequest.Render(w, r, http.StatusBadRequest, err.Error())
- return
- }
-
- u, ok := revactx.ContextGetUser(r.Context())
- if !ok {
- logger.Debug().Msg("could not get messages: user not in context")
- errorcode.GeneralException.Render(w, r, http.StatusInternalServerError, "user not in context")
- return
- }
-
- exp, err := identity.GetExpandValues(odataReq.Query)
- if err != nil {
- logger.Debug().Err(err).Interface("query", r.URL.Query()).Msg("could not get messages: $expand error")
- errorcode.InvalidRequest.Render(w, r, http.StatusBadRequest, err.Error())
- return
- }
-
- var me *libregraph.User
- // We can just return the user from context unless we need to expand the group memberships
- if !slices.Contains(exp, "memberOf") {
- me = identity.CreateUserModelFromCS3(u)
- } else {
- var err error
- logger.Debug().Msg("calling get user on backend")
- me, err = g.identityBackend.GetUser(r.Context(), u.GetId().GetOpaqueId(), odataReq)
- if err != nil {
- logger.Debug().Err(err).Interface("user", u).Msg("could not get user from backend")
- errorcode.RenderError(w, r, err)
- return
- }
- if me.MemberOf == nil {
- me.MemberOf = []libregraph.Group{}
- }
- }
-
- // expand appRoleAssignments if requested
- if slices.Contains(exp, appRoleAssignments) {
- var err error
- me.AppRoleAssignments, err = g.fetchAppRoleAssignments(r.Context(), me.GetId())
- if err != nil {
- logger.Debug().Err(err).Str("userid", me.GetId()).Msg("could not get appRoleAssignments for self")
- errorcode.RenderError(w, r, err)
- return
- }
- }
-
- preferedLanguage, _, err := getUserLanguage(r.Context(), g.valueService, me.GetId())
- if err != nil {
- logger.Error().Err(err).Msg("could not get user language")
- errorcode.GeneralException.Render(w, r, http.StatusInternalServerError, "could not get user language")
- return
- }
-
- me.PreferredLanguage = &preferedLanguage
-
- render.Status(r, http.StatusOK)
- render.JSON(w, r, me)
-}