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:
@@ -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()
|
||||||
|
|||||||
@@ -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))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -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")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user