1
0
mirror of https://github.com/axllent/mailpit.git synced 2025-04-21 12:17:05 +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" "encoding/json"
"errors" "errors"
"fmt" "fmt"
"net/http"
"net/mail" "net/mail"
"os" "os"
"os/signal" "os/signal"
@ -469,15 +470,25 @@ func GetAttachmentPart(id, partID string) (*enmime.Part, error) {
} }
// LatestID returns the latest message ID // 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{} messages := []MessageSummary{}
var err error var err error
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) messages, err = List(0, 1)
if err != nil { if err != nil {
return "", err return "", err
} }
}
if len(messages) == 0 { if len(messages) == 0 {
return "", errors.New("Message not found") return "", errors.New("Message not found")
} }

View File

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

View File

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