ProtonMail / go-proton-api

Proton API library used by Go-based clients and tools
MIT License
129 stars 17 forks source link

Sorting field in GetMessageMetadata #117

Closed jarmani closed 1 year ago

jarmani commented 1 year ago

Hi,

In commit ca6c1de96bc5cab8890e54823de61d1ab4f2d307 sorting order was added, but it is still impossible to sort by anything other than the ID.

Would it be acceptable to also add the Sort field ?

Quick proof of concept :

index 629bdbd..56c2a96 100644
--- a/message.go
+++ b/message.go
@@ -246,15 +246,16 @@ func (c *Client) GetMessageMetadataPage(ctx context.Context, page, pageSize int,

        Page     int
        PageSize int
-
-       Sort string
    }{
        MessageFilter: filter,

        Page:     page,
        PageSize: pageSize,
+   }

-       Sort: "ID",
+   /* keep default sort to maintain backward compatibility */
+   if req.Sort == "" {
+       req.Sort = "ID"
    }

    for {
diff --git a/message_types.go b/message_types.go
index 4d5fe95..a6ef6d9 100644
--- a/message_types.go
+++ b/message_types.go
@@ -55,6 +55,7 @@ type MessageFilter struct {
    ExternalID string `json:",omitempty"`
    LabelID    string `json:",omitempty"`
    EndID      string `json:",omitempty"`
+   Sort       string `json:",omitempty"`
    Desc       Bool
 }

Thanks !

jarmani commented 1 year ago

Hi,

Any thoughts on this ?

jarmani commented 1 year ago

Move to https://github.com/ProtonMail/go-proton-api/pull/122