1
0
mirror of https://github.com/jhillyerd/inbucket.git synced 2025-12-17 09:37:02 +00:00

rest: Update attachments to 3.0 URL scheme, closes #138

This commit is contained in:
James Hillyerd
2019-08-17 12:07:20 -07:00
parent 0b3f4eab75
commit a73ffeabd3
2 changed files with 17 additions and 8 deletions

View File

@@ -65,14 +65,15 @@ func MailboxShowV1(w http.ResponseWriter, req *http.Request, ctx *web.Context) (
attachments := make([]*model.JSONMessageAttachmentV1, len(attachParts)) attachments := make([]*model.JSONMessageAttachmentV1, len(attachParts))
for i, part := range attachParts { for i, part := range attachParts {
content := part.Content content := part.Content
var checksum = md5.Sum(content) // Example URL: http://localhost/serve/mailbox/swaks/0001/attach/0/favicon.png
link := "http://" + req.Host + "/serve/mailbox/" + name + "/" + id + "/attach/" +
strconv.Itoa(i) + "/" + part.FileName
checksum := md5.Sum(content)
attachments[i] = &model.JSONMessageAttachmentV1{ attachments[i] = &model.JSONMessageAttachmentV1{
ContentType: part.ContentType, ContentType: part.ContentType,
FileName: part.FileName, FileName: part.FileName,
DownloadLink: "http://" + req.Host + "/mailbox/dattach/" + name + "/" + id + "/" + DownloadLink: link,
strconv.Itoa(i) + "/" + part.FileName, ViewLink: link,
ViewLink: "http://" + req.Host + "/mailbox/vattach/" + name + "/" + id + "/" +
strconv.Itoa(i) + "/" + part.FileName,
MD5: hex.EncodeToString(checksum[:]), MD5: hex.EncodeToString(checksum[:]),
} }
} }

View File

@@ -196,6 +196,10 @@ func TestRestMessage(t *testing.T) {
"From": []string{"noreply@inbucket.org"}, "From": []string{"noreply@inbucket.org"},
}, },
}, },
Attachments: []*enmime.Part{{
FileName: "favicon.png",
ContentType: "image/png",
}},
}, },
) )
mm.AddMessage("good", msg1) mm.AddMessage("good", msg1)
@@ -231,6 +235,10 @@ func TestRestMessage(t *testing.T) {
decodedStringEquals(t, result, "header/To/[0]", "fred@fish.com") decodedStringEquals(t, result, "header/To/[0]", "fred@fish.com")
decodedStringEquals(t, result, "header/To/[1]", "keyword@nsa.gov") decodedStringEquals(t, result, "header/To/[1]", "keyword@nsa.gov")
decodedStringEquals(t, result, "header/From/[0]", "noreply@inbucket.org") decodedStringEquals(t, result, "header/From/[0]", "noreply@inbucket.org")
decodedStringEquals(t, result, "attachments/[0]/filename", "favicon.png")
decodedStringEquals(t, result, "attachments/[0]/content-type", "image/png")
decodedStringEquals(t, result, "attachments/[0]/download-link", "http://localhost/serve/mailbox/good/0001/attach/0/favicon.png")
decodedStringEquals(t, result, "attachments/[0]/view-link", "http://localhost/serve/mailbox/good/0001/attach/0/favicon.png")
if t.Failed() { if t.Failed() {
// Wait for handler to finish logging // Wait for handler to finish logging