Update to Go 1.20 + run better align (#2927)

* chore(go): update go version to 1.20. Closes #2185

* chore(go): run better align against project

To optimize struct field order. Closes #2870

* chore(go): update CI jobs to use Go 1.20

* fix(go): linter warnings for Go 1.20 update
This commit is contained in:
Gabe Kangas
2023-05-30 10:31:43 -07:00
committed by GitHub
parent 7e0907e16c
commit 85e7af3d5f
47 changed files with 248 additions and 695 deletions

View File

@@ -19,27 +19,27 @@ import (
// Client represents a single chat client.
type Client struct {
mu sync.RWMutex
Id uint `json:"-"`
accessToken string
conn *websocket.Conn
User *user.User `json:"user"`
server *Server
IPAddress string `json:"-"`
ConnectedAt time.Time `json:"connectedAt"`
timeoutTimer *time.Timer
rateLimiter *rate.Limiter
conn *websocket.Conn
User *user.User `json:"user"`
server *Server
Geo *geoip.GeoDetails `json:"geo"`
// Buffered channel of outbound messages.
send chan []byte
rateLimiter *rate.Limiter
timeoutTimer *time.Timer
accessToken string
IPAddress string `json:"-"`
UserAgent string `json:"userAgent"`
MessageCount int `json:"messageCount"`
Id uint `json:"-"`
mu sync.RWMutex
inTimeout bool
Geo *geoip.GeoDetails `json:"geo"`
MessageCount int `json:"messageCount"`
UserAgent string `json:"userAgent"`
ConnectedAt time.Time `json:"connectedAt"`
}
type chatClientEvent struct {
data []byte
client *Client
data []byte
}
const (

View File

@@ -28,16 +28,16 @@ type OutboundEvent interface {
// Event is any kind of event. A type is required to be specified.
type Event struct {
Timestamp time.Time `json:"timestamp"`
Type EventType `json:"type,omitempty"`
ID string `json:"id"`
Timestamp time.Time `json:"timestamp"`
}
// UserEvent is an event with an associated user.
type UserEvent struct {
User *user.User `json:"user"`
ClientID uint `json:"clientId,omitempty"`
HiddenAt *time.Time `json:"hiddenAt,omitempty"`
ClientID uint `json:"clientId,omitempty"`
}
// MessageEvent is an event that has a message body.

View File

@@ -186,26 +186,27 @@ func makeFederatedActionChatEventFromRowData(row rowData) events.FediverseEngage
}
type rowData struct {
id string
userID *string
body string
eventType models.EventType
hiddenAt *time.Time
timestamp time.Time
title *string
subtitle *string
image *string
link *string
timestamp time.Time
image *string
previousUsernames *string
userDisplayName *string
userDisplayColor *int
userDisplayName *string
userDisplayColor *int
userID *string
title *string
subtitle *string
link *string
userType *string
userScopes *string
hiddenAt *time.Time
userCreatedAt *time.Time
userDisabledAt *time.Time
previousUsernames *string
userNameChangedAt *time.Time
userAuthenticatedAt *time.Time
userScopes *string
userType *string
userNameChangedAt *time.Time
body string
eventType models.EventType
id string
}
func getChat(rows *sql.Rows) ([]interface{}, error) {

View File

@@ -27,10 +27,7 @@ var _lastSeenCache = map[string]time.Time{}
// Server represents an instance of the chat server.
type Server struct {
mu sync.RWMutex
seq uint
clients map[uint]*Client
maxSocketConnectionLimit int64
clients map[uint]*Client
// send outbound message payload to all clients
outbound chan []byte
@@ -41,7 +38,11 @@ type Server struct {
// unregister requests from clients.
unregister chan uint // the ChatClient id
geoipClient *geoip.Client
geoipClient *geoip.Client
seq uint
maxSocketConnectionLimit int64
mu sync.RWMutex
}
// NewChat will return a new instance of the chat server.