1
0
mirror of https://github.com/axllent/mailpit.git synced 2025-04-13 11:50:32 +02:00

Fix: Fix regression to support for search query params to all /latest endpoints (#206)

This commit is contained in:
Ralph Slooten 2023-12-17 08:36:58 +13:00
parent 0808e4543f
commit a32978d149
3 changed files with 23 additions and 12 deletions

View File

@ -8,6 +8,7 @@ import (
"encoding/json"
"errors"
"fmt"
"net/http"
"net/mail"
"os"
"os/signal"
@ -469,15 +470,25 @@ func GetAttachmentPart(id, partID string) (*enmime.Part, error) {
}
// LatestID returns the latest message ID
func LatestID() (string, error) {
//
// If a query argument is set in the request the function will return the
// latest message matching the search
func LatestID(r *http.Request) (string, error) {
messages := []MessageSummary{}
var err error
messages, err = List(0, 1)
if err != nil {
return "", err
search := strings.TrimSpace(r.URL.Query().Get("query"))
if search != "" {
messages, _, err = Search(search, 0, 1)
if err != nil {
return "", err
}
} else {
messages, err = List(0, 1)
if err != nil {
return "", err
}
}
if len(messages) == 0 {
return "", errors.New("Message not found")
}

View File

@ -213,7 +213,7 @@ func GetMessage(w http.ResponseWriter, r *http.Request) {
if id == "latest" {
var err error
id, err = storage.LatestID()
id, err = storage.LatestID(r)
if err != nil {
w.WriteHeader(404)
fmt.Fprint(w, err.Error())
@ -315,7 +315,7 @@ func GetHeaders(w http.ResponseWriter, r *http.Request) {
if id == "latest" {
var err error
id, err = storage.LatestID()
id, err = storage.LatestID(r)
if err != nil {
w.WriteHeader(404)
fmt.Fprint(w, err.Error())
@ -375,7 +375,7 @@ func DownloadRaw(w http.ResponseWriter, r *http.Request) {
if id == "latest" {
var err error
id, err = storage.LatestID()
id, err = storage.LatestID(r)
if err != nil {
w.WriteHeader(404)
fmt.Fprint(w, err.Error())
@ -738,7 +738,7 @@ func HTMLCheck(w http.ResponseWriter, r *http.Request) {
if id == "latest" {
var err error
id, err = storage.LatestID()
id, err = storage.LatestID(r)
if err != nil {
w.WriteHeader(404)
fmt.Fprint(w, err.Error())
@ -793,7 +793,7 @@ func LinkCheck(w http.ResponseWriter, r *http.Request) {
if id == "latest" {
var err error
id, err = storage.LatestID()
id, err = storage.LatestID(r)
if err != nil {
w.WriteHeader(404)
fmt.Fprint(w, err.Error())

View File

@ -79,7 +79,7 @@ func GetMessageHTML(w http.ResponseWriter, r *http.Request) {
if id == "latest" {
var err error
id, err = storage.LatestID()
id, err = storage.LatestID(r)
if err != nil {
w.WriteHeader(404)
fmt.Fprint(w, err.Error())
@ -136,7 +136,7 @@ func GetMessageText(w http.ResponseWriter, r *http.Request) {
if id == "latest" {
var err error
id, err = storage.LatestID()
id, err = storage.LatestID(r)
if err != nil {
w.WriteHeader(404)
fmt.Fprint(w, err.Error())