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

rest: resolve linter errors (#430)

This commit is contained in:
James Hillyerd
2023-11-12 19:32:43 -08:00
committed by GitHub
parent 86d762ac88
commit 7ae7d29741
6 changed files with 42 additions and 54 deletions

View File

@@ -15,21 +15,6 @@ import (
"github.com/jhillyerd/enmime" "github.com/jhillyerd/enmime"
) )
const (
// JSON map keys
mailboxKey = "mailbox"
idKey = "id"
fromKey = "from"
toKey = "to"
subjectKey = "subject"
dateKey = "date"
sizeKey = "size"
headerKey = "header"
bodyKey = "body"
textKey = "text"
htmlKey = "html"
)
func TestRestMailboxList(t *testing.T) { func TestRestMailboxList(t *testing.T) {
// Setup // Setup
mm := test.NewManager() mm := test.NewManager()

View File

@@ -1,12 +1,13 @@
package client_test package client_test
import ( import (
"github.com/gorilla/mux"
"net/http" "net/http"
"net/http/httptest" "net/http/httptest"
"testing" "testing"
"time" "time"
"github.com/gorilla/mux"
"github.com/inbucket/inbucket/v3/pkg/rest/client" "github.com/inbucket/inbucket/v3/pkg/rest/client"
) )
@@ -357,5 +358,5 @@ type jsonHandler struct {
func (j *jsonHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { func (j *jsonHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
j.called = true j.called = true
w.Write([]byte(j.json)) _, _ = w.Write([]byte(j.json))
} }

View File

@@ -62,7 +62,7 @@ func exampleSetup() (baseURL string, teardown func()) {
// Handle ListMailbox request. // Handle ListMailbox request.
router.HandleFunc("/api/v1/mailbox/user1", func(w http.ResponseWriter, r *http.Request) { router.HandleFunc("/api/v1/mailbox/user1", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte(`[ _, _ = w.Write([]byte(`[
{ {
"mailbox": "user1", "mailbox": "user1",
"id": "20180107T224128-0000", "id": "20180107T224128-0000",
@@ -79,7 +79,7 @@ func exampleSetup() (baseURL string, teardown func()) {
// Handle GetMessage request. // Handle GetMessage request.
router.HandleFunc("/api/v1/mailbox/user1/20180107T224128-0000", router.HandleFunc("/api/v1/mailbox/user1/20180107T224128-0000",
func(w http.ResponseWriter, r *http.Request) { func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte(`{ _, _ = w.Write([]byte(`{
"mailbox": "user1", "mailbox": "user1",
"id": "20180107T224128-0000", "id": "20180107T224128-0000",
"from": "admin@inbucket.org", "from": "admin@inbucket.org",

View File

@@ -58,24 +58,3 @@ func (c *restClient) doJSON(method string, uri string, v interface{}) error {
return fmt.Errorf("%s for %q, unexpected %v: %s", method, uri, resp.StatusCode, resp.Status) return fmt.Errorf("%s for %q, unexpected %v: %s", method, uri, resp.StatusCode, resp.Status)
} }
// doJSONBody performs an HTTP request with this client and marshalls the JSON response into v.
func (c *restClient) doJSONBody(method string, uri string, body []byte, v interface{}) error {
resp, err := c.do(method, uri, body)
if err != nil {
return err
}
defer func() {
_ = resp.Body.Close()
}()
if resp.StatusCode == http.StatusOK {
if v == nil {
return nil
}
// Decode response body
return json.NewDecoder(resp.Body).Decode(v)
}
return fmt.Errorf("%s for %q, unexpected %v: %s", method, uri, resp.StatusCode, resp.Status)
}

View File

@@ -72,12 +72,18 @@ func (ml *msgListenerV1) Delete(mailbox string, id string) error {
func (ml *msgListenerV1) WSReader(conn *websocket.Conn) { func (ml *msgListenerV1) WSReader(conn *websocket.Conn) {
slog := log.With().Str("module", "rest").Str("proto", "WebSocket"). slog := log.With().Str("module", "rest").Str("proto", "WebSocket").
Str("remote", conn.RemoteAddr().String()).Logger() Str("remote", conn.RemoteAddr().String()).Logger()
defer ml.Close() defer ml.Close()
conn.SetReadLimit(maxMessageSizeV1) conn.SetReadLimit(maxMessageSizeV1)
conn.SetReadDeadline(time.Now().Add(pongWaitV1)) if err := conn.SetReadDeadline(time.Now().Add(pongWaitV1)); err != nil {
slog.Warn().Err(err).Msg("Failed to setup read deadline")
}
conn.SetPongHandler(func(string) error { conn.SetPongHandler(func(string) error {
slog.Debug().Msg("Got pong") slog.Debug().Msg("Got pong")
conn.SetReadDeadline(time.Now().Add(pongWaitV1)) if err := conn.SetReadDeadline(time.Now().Add(pongWaitV1)); err != nil {
slog.Warn().Err(err).Msg("Failed to set read deadline in pong")
}
return nil return nil
}) })
@@ -101,6 +107,9 @@ func (ml *msgListenerV1) WSReader(conn *websocket.Conn) {
// WSWriter makes sure the websocket client is still connected // WSWriter makes sure the websocket client is still connected
func (ml *msgListenerV1) WSWriter(conn *websocket.Conn) { func (ml *msgListenerV1) WSWriter(conn *websocket.Conn) {
slog := log.With().Str("module", "rest").Str("proto", "WebSocket").
Str("remote", conn.RemoteAddr().String()).Logger()
ticker := time.NewTicker(pingPeriodV1) ticker := time.NewTicker(pingPeriodV1)
defer func() { defer func() {
ticker.Stop() ticker.Stop()
@@ -111,10 +120,12 @@ func (ml *msgListenerV1) WSWriter(conn *websocket.Conn) {
for { for {
select { select {
case msg, ok := <-ml.c: case msg, ok := <-ml.c:
conn.SetWriteDeadline(time.Now().Add(writeWaitV1)) if err := conn.SetWriteDeadline(time.Now().Add(writeWaitV1)); err != nil {
slog.Warn().Err(err).Msg("Failed to set write deadline for msg")
}
if !ok { if !ok {
// msgListener closed, exit // msgListener closed, exit
conn.WriteMessage(websocket.CloseMessage, []byte{}) _ = conn.WriteMessage(websocket.CloseMessage, []byte{})
return return
} }
if conn.WriteJSON(metadataToHeader(&msg)) != nil { if conn.WriteJSON(metadataToHeader(&msg)) != nil {
@@ -123,13 +134,14 @@ func (ml *msgListenerV1) WSWriter(conn *websocket.Conn) {
} }
case <-ticker.C: case <-ticker.C:
// Send ping // Send ping
conn.SetWriteDeadline(time.Now().Add(writeWaitV1)) if err := conn.SetWriteDeadline(time.Now().Add(writeWaitV1)); err != nil {
slog.Warn().Err(err).Msg("Failed to set write deadline for ping")
}
if conn.WriteMessage(websocket.PingMessage, []byte{}) != nil { if conn.WriteMessage(websocket.PingMessage, []byte{}) != nil {
// Write error // Write error
return return
} }
log.Debug().Str("module", "rest").Str("proto", "WebSocket"). slog.Debug().Msg("Sent ping")
Str("remote", conn.RemoteAddr().String()).Msg("Sent ping")
} }
} }
} }

View File

@@ -91,11 +91,16 @@ func (ml *msgListenerV2) WSReader(conn *websocket.Conn) {
slog := log.With().Str("module", "rest").Str("proto", "WebSocket"). slog := log.With().Str("module", "rest").Str("proto", "WebSocket").
Str("remote", conn.RemoteAddr().String()).Logger() Str("remote", conn.RemoteAddr().String()).Logger()
defer ml.Close() defer ml.Close()
conn.SetReadLimit(maxMessageSizeV2) conn.SetReadLimit(maxMessageSizeV2)
conn.SetReadDeadline(time.Now().Add(pongWaitV2)) if err := conn.SetReadDeadline(time.Now().Add(pongWaitV2)); err != nil {
slog.Warn().Err(err).Msg("Failed to setup read deadline")
}
conn.SetPongHandler(func(string) error { conn.SetPongHandler(func(string) error {
slog.Debug().Msg("Got pong") slog.Debug().Msg("Got pong")
conn.SetReadDeadline(time.Now().Add(pongWaitV2)) if err := conn.SetReadDeadline(time.Now().Add(pongWaitV2)); err != nil {
slog.Warn().Err(err).Msg("Failed to set read deadline in pong")
}
return nil return nil
}) })
@@ -119,6 +124,9 @@ func (ml *msgListenerV2) WSReader(conn *websocket.Conn) {
// WSWriter makes sure the websocket client is still connected // WSWriter makes sure the websocket client is still connected
func (ml *msgListenerV2) WSWriter(conn *websocket.Conn) { func (ml *msgListenerV2) WSWriter(conn *websocket.Conn) {
slog := log.With().Str("module", "rest").Str("proto", "WebSocket").
Str("remote", conn.RemoteAddr().String()).Logger()
ticker := time.NewTicker(pingPeriodV2) ticker := time.NewTicker(pingPeriodV2)
defer func() { defer func() {
ticker.Stop() ticker.Stop()
@@ -129,10 +137,12 @@ func (ml *msgListenerV2) WSWriter(conn *websocket.Conn) {
for { for {
select { select {
case event, ok := <-ml.c: case event, ok := <-ml.c:
conn.SetWriteDeadline(time.Now().Add(writeWaitV2)) if err := conn.SetWriteDeadline(time.Now().Add(writeWaitV2)); err != nil {
slog.Warn().Err(err).Msg("Failed to set write deadline for msg")
}
if !ok { if !ok {
// msgListener closed, exit // msgListener closed, exit
conn.WriteMessage(websocket.CloseMessage, []byte{}) _ = conn.WriteMessage(websocket.CloseMessage, []byte{})
return return
} }
if conn.WriteJSON(event) != nil { if conn.WriteJSON(event) != nil {
@@ -141,13 +151,14 @@ func (ml *msgListenerV2) WSWriter(conn *websocket.Conn) {
} }
case <-ticker.C: case <-ticker.C:
// Send ping // Send ping
conn.SetWriteDeadline(time.Now().Add(writeWaitV2)) if err := conn.SetWriteDeadline(time.Now().Add(writeWaitV2)); err != nil {
slog.Warn().Err(err).Msg("Failed to set write deadline for ping")
}
if conn.WriteMessage(websocket.PingMessage, []byte{}) != nil { if conn.WriteMessage(websocket.PingMessage, []byte{}) != nil {
// Write error // Write error
return return
} }
log.Debug().Str("module", "rest").Str("proto", "WebSocket"). slog.Debug().Msg("Sent ping")
Str("remote", conn.RemoteAddr().String()).Msg("Sent ping")
} }
} }
} }