Fix lint, make pipeline use psotgres
This commit is contained in:
2
.github/workflows/test.yaml
vendored
2
.github/workflows/test.yaml
vendored
@@ -39,7 +39,7 @@ jobs:
|
||||
- name: Build web app (required for tests)
|
||||
run: make web
|
||||
- name: Run tests, formatting, vetting and linting
|
||||
run: make check
|
||||
run: make checkv
|
||||
- name: Run coverage
|
||||
run: make coverage
|
||||
- name: Upload coverage to codecov.io
|
||||
|
||||
2
Makefile
2
Makefile
@@ -265,6 +265,8 @@ cli-build-results:
|
||||
|
||||
check: test web-fmt-check fmt-check vet web-lint lint staticcheck
|
||||
|
||||
checkv: testv web-fmt-check fmt-check vet web-lint lint staticcheck
|
||||
|
||||
test: .PHONY
|
||||
go test $(shell go list ./... | grep -vE 'ntfy/(test|examples|tools)')
|
||||
|
||||
|
||||
@@ -19,10 +19,10 @@ const (
|
||||
PollRequestEvent = "poll_request"
|
||||
)
|
||||
|
||||
const (
|
||||
MessageIDLength = 12
|
||||
)
|
||||
// MessageIDLength is the length of a randomly generated message ID
|
||||
const MessageIDLength = 12
|
||||
|
||||
// Errors for message operations
|
||||
var (
|
||||
ErrUnexpectedMessageType = errors.New("unexpected message type")
|
||||
ErrMessageNotFound = errors.New("message not found")
|
||||
@@ -197,6 +197,7 @@ func (t SinceMarker) ID() string {
|
||||
return t.id
|
||||
}
|
||||
|
||||
// Common SinceMarker values for subscribing to messages
|
||||
var (
|
||||
SinceAllMessages = SinceMarker{time.Unix(0, 0), ""}
|
||||
SinceNoMessages = SinceMarker{time.Unix(1, 0), ""}
|
||||
|
||||
@@ -19,13 +19,16 @@ const (
|
||||
messageIDLength = model.MessageIDLength
|
||||
)
|
||||
|
||||
// Sentinel values and errors
|
||||
// SinceMarker aliases
|
||||
var (
|
||||
sinceAllMessages = model.SinceAllMessages
|
||||
sinceNoMessages = model.SinceNoMessages
|
||||
sinceLatestMessage = model.SinceLatestMessage
|
||||
errUnexpectedMessageType = model.ErrUnexpectedMessageType
|
||||
errMessageNotFound = model.ErrMessageNotFound
|
||||
sinceAllMessages = model.SinceAllMessages
|
||||
sinceNoMessages = model.SinceNoMessages
|
||||
sinceLatestMessage = model.SinceLatestMessage
|
||||
)
|
||||
|
||||
// Error aliases
|
||||
var (
|
||||
errMessageNotFound = model.ErrMessageNotFound
|
||||
)
|
||||
|
||||
// Constructors and helpers
|
||||
|
||||
32
user/util.go
32
user/util.go
@@ -94,38 +94,6 @@ func nullInt64(v int64) sql.NullInt64 {
|
||||
return sql.NullInt64{Int64: v, Valid: true}
|
||||
}
|
||||
|
||||
// execTx executes a function in a transaction. If the function returns an error, the transaction is rolled back.
|
||||
func execTx(db *sql.DB, f func(tx *sql.Tx) error) error {
|
||||
tx, err := db.Begin()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer tx.Rollback()
|
||||
if err := f(tx); err != nil {
|
||||
return err
|
||||
}
|
||||
return tx.Commit()
|
||||
}
|
||||
|
||||
// queryTx executes a function in a transaction and returns the result. If the function
|
||||
// returns an error, the transaction is rolled back.
|
||||
func queryTx[T any](db *sql.DB, f func(tx *sql.Tx) (T, error)) (T, error) {
|
||||
tx, err := db.Begin()
|
||||
if err != nil {
|
||||
var zero T
|
||||
return zero, err
|
||||
}
|
||||
defer tx.Rollback()
|
||||
t, err := f(tx)
|
||||
if err != nil {
|
||||
return t, err
|
||||
}
|
||||
if err := tx.Commit(); err != nil {
|
||||
return t, err
|
||||
}
|
||||
return t, nil
|
||||
}
|
||||
|
||||
// toSQLWildcard converts a wildcard string to a SQL wildcard string. It only allows '*' as wildcards,
|
||||
// and escapes '_', assuming '\' as escape character.
|
||||
func toSQLWildcard(s string) string {
|
||||
|
||||
Reference in New Issue
Block a user