fix(observabillity): include otel logs
This commit was merged in pull request #158.
This commit is contained in:
@@ -1,11 +1,10 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"spend-sparrow/internal/log"
|
||||
"spend-sparrow/internal/types"
|
||||
|
||||
"database/sql"
|
||||
"errors"
|
||||
"log/slog"
|
||||
"spend-sparrow/internal/types"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -52,7 +51,7 @@ func (db AuthSqlite) InsertUser(user *types.User) error {
|
||||
return ErrAlreadyExists
|
||||
}
|
||||
|
||||
log.L.Error("SQL error InsertUser", "err", err)
|
||||
slog.Error("SQL error InsertUser", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
@@ -67,7 +66,7 @@ func (db AuthSqlite) UpdateUser(user *types.User) error {
|
||||
user.EmailVerified, user.EmailVerifiedAt, user.Password, user.Id)
|
||||
|
||||
if err != nil {
|
||||
log.L.Error("SQL error UpdateUser", "err", err)
|
||||
slog.Error("SQL error UpdateUser", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
@@ -93,7 +92,7 @@ func (db AuthSqlite) GetUserByEmail(email string) (*types.User, error) {
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
return nil, ErrNotFound
|
||||
} else {
|
||||
log.L.Error("SQL error GetUser", "err", err)
|
||||
slog.Error("SQL error GetUser", "err", err)
|
||||
return nil, types.ErrInternal
|
||||
}
|
||||
}
|
||||
@@ -120,7 +119,7 @@ func (db AuthSqlite) GetUser(userId uuid.UUID) (*types.User, error) {
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
return nil, ErrNotFound
|
||||
} else {
|
||||
log.L.Error("SQL error GetUser", "err", err)
|
||||
slog.Error("SQL error GetUser", "err", err)
|
||||
return nil, types.ErrInternal
|
||||
}
|
||||
}
|
||||
@@ -131,55 +130,55 @@ func (db AuthSqlite) GetUser(userId uuid.UUID) (*types.User, error) {
|
||||
func (db AuthSqlite) DeleteUser(userId uuid.UUID) error {
|
||||
tx, err := db.db.Begin()
|
||||
if err != nil {
|
||||
log.L.Error("Could not start transaction", "err", err)
|
||||
slog.Error("Could not start transaction", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
_, err = tx.Exec("DELETE FROM account WHERE user_id = ?", userId)
|
||||
if err != nil {
|
||||
_ = tx.Rollback()
|
||||
log.L.Error("Could not delete accounts", "err", err)
|
||||
slog.Error("Could not delete accounts", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
_, err = tx.Exec("DELETE FROM token WHERE user_id = ?", userId)
|
||||
if err != nil {
|
||||
_ = tx.Rollback()
|
||||
log.L.Error("Could not delete user tokens", "err", err)
|
||||
slog.Error("Could not delete user tokens", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
_, err = tx.Exec("DELETE FROM session WHERE user_id = ?", userId)
|
||||
if err != nil {
|
||||
_ = tx.Rollback()
|
||||
log.L.Error("Could not delete sessions", "err", err)
|
||||
slog.Error("Could not delete sessions", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
_, err = tx.Exec("DELETE FROM user WHERE user_id = ?", userId)
|
||||
if err != nil {
|
||||
_ = tx.Rollback()
|
||||
log.L.Error("Could not delete user", "err", err)
|
||||
slog.Error("Could not delete user", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
_, err = tx.Exec("DELETE FROM treasure_chest WHERE user_id = ?", userId)
|
||||
if err != nil {
|
||||
_ = tx.Rollback()
|
||||
log.L.Error("Could not delete user", "err", err)
|
||||
slog.Error("Could not delete user", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
_, err = tx.Exec("DELETE FROM \"transaction\" WHERE user_id = ?", userId)
|
||||
if err != nil {
|
||||
_ = tx.Rollback()
|
||||
log.L.Error("Could not delete user", "err", err)
|
||||
slog.Error("Could not delete user", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
err = tx.Commit()
|
||||
if err != nil {
|
||||
log.L.Error("Could not commit transaction", "err", err)
|
||||
slog.Error("Could not commit transaction", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
@@ -192,7 +191,7 @@ func (db AuthSqlite) InsertToken(token *types.Token) error {
|
||||
VALUES (?, ?, ?, ?, ?, ?)`, token.UserId, token.SessionId, token.Type, token.Token, token.CreatedAt, token.ExpiresAt)
|
||||
|
||||
if err != nil {
|
||||
log.L.Error("Could not insert token", "err", err)
|
||||
slog.Error("Could not insert token", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
@@ -217,23 +216,23 @@ func (db AuthSqlite) GetToken(token string) (*types.Token, error) {
|
||||
|
||||
if err != nil {
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
log.L.Info("Token not found", "token", token)
|
||||
slog.Info("Token not found", "token", token)
|
||||
return nil, ErrNotFound
|
||||
} else {
|
||||
log.L.Error("Could not get token", "err", err)
|
||||
slog.Error("Could not get token", "err", err)
|
||||
return nil, types.ErrInternal
|
||||
}
|
||||
}
|
||||
|
||||
createdAt, err = time.Parse(time.RFC3339, createdAtStr)
|
||||
if err != nil {
|
||||
log.L.Error("Could not parse token.created_at", "err", err)
|
||||
slog.Error("Could not parse token.created_at", "err", err)
|
||||
return nil, types.ErrInternal
|
||||
}
|
||||
|
||||
expiresAt, err = time.Parse(time.RFC3339, expiresAtStr)
|
||||
if err != nil {
|
||||
log.L.Error("Could not parse token.expires_at", "err", err)
|
||||
slog.Error("Could not parse token.expires_at", "err", err)
|
||||
return nil, types.ErrInternal
|
||||
}
|
||||
|
||||
@@ -248,7 +247,7 @@ func (db AuthSqlite) GetTokensByUserIdAndType(userId uuid.UUID, tokenType types.
|
||||
AND type = ?`, userId, tokenType)
|
||||
|
||||
if err != nil {
|
||||
log.L.Error("Could not get token", "err", err)
|
||||
slog.Error("Could not get token", "err", err)
|
||||
return nil, types.ErrInternal
|
||||
}
|
||||
|
||||
@@ -263,7 +262,7 @@ func (db AuthSqlite) GetTokensBySessionIdAndType(sessionId string, tokenType typ
|
||||
AND type = ?`, sessionId, tokenType)
|
||||
|
||||
if err != nil {
|
||||
log.L.Error("Could not get token", "err", err)
|
||||
slog.Error("Could not get token", "err", err)
|
||||
return nil, types.ErrInternal
|
||||
}
|
||||
|
||||
@@ -287,19 +286,19 @@ func getTokensFromQuery(query *sql.Rows, userId uuid.UUID, sessionId string, tok
|
||||
|
||||
err := query.Scan(&token, &createdAtStr, &expiresAtStr)
|
||||
if err != nil {
|
||||
log.L.Error("Could not scan token", "err", err)
|
||||
slog.Error("Could not scan token", "err", err)
|
||||
return nil, types.ErrInternal
|
||||
}
|
||||
|
||||
createdAt, err = time.Parse(time.RFC3339, createdAtStr)
|
||||
if err != nil {
|
||||
log.L.Error("Could not parse token.created_at", "err", err)
|
||||
slog.Error("Could not parse token.created_at", "err", err)
|
||||
return nil, types.ErrInternal
|
||||
}
|
||||
|
||||
expiresAt, err = time.Parse(time.RFC3339, expiresAtStr)
|
||||
if err != nil {
|
||||
log.L.Error("Could not parse token.expires_at", "err", err)
|
||||
slog.Error("Could not parse token.expires_at", "err", err)
|
||||
return nil, types.ErrInternal
|
||||
}
|
||||
|
||||
@@ -316,7 +315,7 @@ func getTokensFromQuery(query *sql.Rows, userId uuid.UUID, sessionId string, tok
|
||||
func (db AuthSqlite) DeleteToken(token string) error {
|
||||
_, err := db.db.Exec("DELETE FROM token WHERE token = ?", token)
|
||||
if err != nil {
|
||||
log.L.Error("Could not delete token", "err", err)
|
||||
slog.Error("Could not delete token", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
return nil
|
||||
@@ -328,7 +327,7 @@ func (db AuthSqlite) InsertSession(session *types.Session) error {
|
||||
VALUES (?, ?, ?, ?)`, session.Id, session.UserId, session.CreatedAt, session.ExpiresAt)
|
||||
|
||||
if err != nil {
|
||||
log.L.Error("Could not insert new session", "err", err)
|
||||
slog.Error("Could not insert new session", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
@@ -348,7 +347,7 @@ func (db AuthSqlite) GetSession(sessionId string) (*types.Session, error) {
|
||||
WHERE session_id = ?`, sessionId).Scan(&userId, &createdAt, &expiresAt)
|
||||
|
||||
if err != nil {
|
||||
log.L.Warn("Session not found", "session-id", sessionId, "err", err)
|
||||
slog.Warn("Session not found", "session-id", sessionId, "err", err)
|
||||
return nil, ErrNotFound
|
||||
}
|
||||
|
||||
@@ -362,7 +361,7 @@ func (db AuthSqlite) GetSessions(userId uuid.UUID) ([]*types.Session, error) {
|
||||
FROM session
|
||||
WHERE user_id = ?`, userId)
|
||||
if err != nil {
|
||||
log.L.Error("Could not get sessions", "err", err)
|
||||
slog.Error("Could not get sessions", "err", err)
|
||||
return nil, types.ErrInternal
|
||||
}
|
||||
|
||||
@@ -375,7 +374,7 @@ func (db AuthSqlite) DeleteOldSessions(userId uuid.UUID) error {
|
||||
WHERE expires_at < datetime('now')
|
||||
AND user_id = ?`, userId)
|
||||
if err != nil {
|
||||
log.L.Error("Could not delete old sessions", "err", err)
|
||||
slog.Error("Could not delete old sessions", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
return nil
|
||||
@@ -385,7 +384,7 @@ func (db AuthSqlite) DeleteSession(sessionId string) error {
|
||||
if sessionId != "" {
|
||||
_, err := db.db.Exec("DELETE FROM session WHERE session_id = ?", sessionId)
|
||||
if err != nil {
|
||||
log.L.Error("Could not delete session", "err", err)
|
||||
slog.Error("Could not delete session", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package db
|
||||
import (
|
||||
"database/sql"
|
||||
"errors"
|
||||
"spend-sparrow/internal/log"
|
||||
"log/slog"
|
||||
"spend-sparrow/internal/types"
|
||||
)
|
||||
|
||||
@@ -17,19 +17,19 @@ func TransformAndLogDbError(module string, r sql.Result, err error) error {
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
return ErrNotFound
|
||||
}
|
||||
log.L.Error("database sql", "module", module, "err", err)
|
||||
slog.Error("database sql", "module", module, "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
if r != nil {
|
||||
rows, err := r.RowsAffected()
|
||||
if err != nil {
|
||||
log.L.Error("database rows affected", "module", module, "err", err)
|
||||
slog.Error("database rows affected", "module", module, "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
if rows == 0 {
|
||||
log.L.Info("row not found", "module", module)
|
||||
slog.Info("row not found", "module", module)
|
||||
return ErrNotFound
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"spend-sparrow/internal/log"
|
||||
"spend-sparrow/internal/types"
|
||||
|
||||
"errors"
|
||||
"log/slog"
|
||||
"spend-sparrow/internal/types"
|
||||
|
||||
"github.com/golang-migrate/migrate/v4"
|
||||
"github.com/golang-migrate/migrate/v4/database/sqlite3"
|
||||
@@ -15,7 +14,7 @@ import (
|
||||
type migrationLogger struct{}
|
||||
|
||||
func (l migrationLogger) Printf(format string, v ...any) {
|
||||
log.L.Info(format, v...)
|
||||
slog.Info(format, v...)
|
||||
}
|
||||
func (l migrationLogger) Verbose() bool {
|
||||
return false
|
||||
@@ -24,7 +23,7 @@ func (l migrationLogger) Verbose() bool {
|
||||
func RunMigrations(db *sqlx.DB, pathPrefix string) error {
|
||||
driver, err := sqlite3.WithInstance(db.DB, &sqlite3.Config{})
|
||||
if err != nil {
|
||||
log.L.Error("Could not create Migration instance", "err", err)
|
||||
slog.Error("Could not create Migration instance", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
@@ -33,14 +32,14 @@ func RunMigrations(db *sqlx.DB, pathPrefix string) error {
|
||||
"",
|
||||
driver)
|
||||
if err != nil {
|
||||
log.L.Error("Could not create migrations instance", "err", err)
|
||||
slog.Error("Could not create migrations instance", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
m.Log = migrationLogger{}
|
||||
|
||||
if err = m.Up(); err != nil && !errors.Is(err, migrate.ErrNoChange) {
|
||||
log.L.Error("Could not run migrations", "err", err)
|
||||
slog.Error("Could not run migrations", "err", err)
|
||||
return types.ErrInternal
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user