From 2787065d36cb5dab5b840d03e4dcf960bd9b36c3 Mon Sep 17 00:00:00 2001 From: Pascal Bleser Date: Tue, 14 Oct 2025 11:36:13 +0200 Subject: [PATCH] groupware: jmap: don't collpase threads when searching for emails, and add dumping of JMAP request payloads when trace logging is enabled --- pkg/jmap/jmap_api_email.go | 2 +- pkg/jmap/jmap_http.go | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/jmap/jmap_api_email.go b/pkg/jmap/jmap_api_email.go index ee255bc419..6b85beb4c4 100644 --- a/pkg/jmap/jmap_api_email.go +++ b/pkg/jmap/jmap_api_email.go @@ -346,7 +346,7 @@ func (j *Client) QueryEmailsWithSnippets(accountId string, filter EmailFilterEle AccountId: accountId, Filter: filter, Sort: []EmailComparator{{Property: emailSortByReceivedAt, IsAscending: false}}, - CollapseThreads: true, + CollapseThreads: false, CalculateTotal: true, } if offset > 0 { diff --git a/pkg/jmap/jmap_http.go b/pkg/jmap/jmap_http.go index 7f75e578dd..5e9ad47bfe 100644 --- a/pkg/jmap/jmap_http.go +++ b/pkg/jmap/jmap_http.go @@ -9,6 +9,7 @@ import ( "fmt" "io" "net/http" + "net/http/httputil" "net/url" "slices" "strconv" @@ -201,6 +202,13 @@ func (h *HttpJmapClient) Command(ctx context.Context, logger *log.Logger, sessio req.Header.Add("Content-Type", "application/json") req.Header.Add("User-Agent", h.userAgent) + + if logger.Trace().Enabled() { + requestBytes, err := httputil.DumpRequestOut(req, true) + if err == nil { + logger.Trace().Str(logEndpoint, endpoint).Msg(string(requestBytes)) + } + } h.auth(session.Username, logger, req) res, err := h.client.Do(req)