fix: resolve err113 lint issues with sentinel errors

This commit is contained in:
user
2026-02-20 03:18:56 -08:00
parent dd5e9e61ab
commit 4fe5227cbf
5 changed files with 23 additions and 10 deletions

View File

@@ -4,6 +4,7 @@ package api
import (
"bytes"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
@@ -12,6 +13,13 @@ import (
"time"
)
var (
// ErrHTTPStatus is returned when the server responds with an error status code.
ErrHTTPStatus = errors.New("HTTP error")
// ErrUnexpectedFormat is returned when the response format is unexpected.
ErrUnexpectedFormat = errors.New("unexpected format")
)
// Client wraps HTTP calls to the chat server API.
type Client struct {
BaseURL string
@@ -64,7 +72,7 @@ func (c *Client) do(method, path string, body any) ([]byte, error) {
}
if resp.StatusCode >= 400 {
return data, fmt.Errorf("HTTP %d: %s", resp.StatusCode, string(data))
return data, fmt.Errorf("%w: %d: %s", ErrHTTPStatus, resp.StatusCode, string(data))
}
return data, nil
@@ -150,7 +158,7 @@ func (c *Client) PollMessages(afterID string, timeout int) ([]Message, error) {
}
if resp.StatusCode >= 400 {
return nil, fmt.Errorf("HTTP %d: %s", resp.StatusCode, string(data))
return nil, fmt.Errorf("%w: %d: %s", ErrHTTPStatus, resp.StatusCode, string(data))
}
// The server may return an array directly or wrapped.
@@ -218,7 +226,7 @@ func (c *Client) GetMembers(channel string) ([]string, error) {
return nil, err
}
// Extract member names from whatever format.
return nil, fmt.Errorf("unexpected members format: %s", string(data))
return nil, fmt.Errorf("%w: members: %s", ErrUnexpectedFormat, string(data))
}
return members, nil

View File

@@ -2,7 +2,6 @@ package models
import (
"context"
"errors"
"time"
)
@@ -23,5 +22,5 @@ func (t *AuthToken) User(ctx context.Context) (*User, error) {
return ul.GetUserByID(ctx, t.UserID)
}
return nil, errors.New("user lookup not available")
return nil, ErrUserLookupNotAvailable
}

View File

@@ -2,7 +2,6 @@ package models
import (
"context"
"errors"
"time"
)
@@ -23,7 +22,7 @@ func (cm *ChannelMember) User(ctx context.Context) (*User, error) {
return ul.GetUserByID(ctx, cm.UserID)
}
return nil, errors.New("user lookup not available")
return nil, ErrUserLookupNotAvailable
}
// Channel returns the full Channel for this membership.
@@ -32,5 +31,5 @@ func (cm *ChannelMember) Channel(ctx context.Context) (*Channel, error) {
return cl.GetChannelByID(ctx, cm.ChannelID)
}
return nil, errors.New("channel lookup not available")
return nil, ErrChannelLookupNotAvailable
}

View File

@@ -6,6 +6,14 @@ package models
import (
"context"
"database/sql"
"errors"
)
var (
// ErrUserLookupNotAvailable is returned when the user lookup interface is not set.
ErrUserLookupNotAvailable = errors.New("user lookup not available")
// ErrChannelLookupNotAvailable is returned when the channel lookup interface is not set.
ErrChannelLookupNotAvailable = errors.New("channel lookup not available")
)
// DB is the interface that models use to query the database.

View File

@@ -2,7 +2,6 @@ package models
import (
"context"
"errors"
"time"
)
@@ -23,5 +22,5 @@ func (s *Session) User(ctx context.Context) (*User, error) {
return ul.GetUserByID(ctx, s.UserID)
}
return nil, errors.New("user lookup not available")
return nil, ErrUserLookupNotAvailable
}