Make linter happy and update dependencies.
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2022-06-26 22:26:39 +05:00
parent 7b6a425908
commit f8f0302564
30 changed files with 325 additions and 363 deletions

View File

@@ -30,14 +30,14 @@ import (
)
var (
c *context.Context
d *Database
ctx *context.Context
dbAdapter *Database
)
func New(cc *context.Context) {
c = cc
// nolint:exhaustivestruct
d = &Database{}
ctx = cc
// nolint:exhaustruct
dbAdapter = &Database{}
c.Database.RegisterDialect(dialectinterface.Interface(Handler{}))
ctx.Database.RegisterDialect(dialectinterface.Interface(Handler{}))
}

View File

@@ -33,33 +33,33 @@ import (
type Handler struct{}
func (dbh Handler) DeletePaste(pasteID int) error {
return d.DeletePaste(pasteID)
return dbAdapter.DeletePaste(pasteID)
}
func (dbh Handler) GetDatabaseConnection() *sql.DB {
return d.GetDatabaseConnection()
return dbAdapter.GetDatabaseConnection()
}
func (dbh Handler) GetPaste(pasteID int) (*structs.Paste, error) {
return d.GetPaste(pasteID)
return dbAdapter.GetPaste(pasteID)
}
func (dbh Handler) GetPagedPastes(page int) ([]structs.Paste, error) {
return d.GetPagedPastes(page)
return dbAdapter.GetPagedPastes(page)
}
func (dbh Handler) GetPastesPages() int {
return d.GetPastesPages()
return dbAdapter.GetPastesPages()
}
func (dbh Handler) Initialize() {
d.Initialize()
dbAdapter.Initialize()
}
func (dbh Handler) SavePaste(p *structs.Paste) (int64, error) {
return d.SavePaste(p)
return dbAdapter.SavePaste(p)
}
func (dbh Handler) Shutdown() {
d.Shutdown()
dbAdapter.Shutdown()
}

View File

@@ -29,16 +29,16 @@ import (
"go.dev.pztrn.name/fastpastebin/internal/context"
)
var c *context.Context
var ctx *context.Context
// New initializes migrations.
func New(cc *context.Context) {
c = cc
ctx = cc
}
// Migrate launching migrations.
func Migrate() {
c.Logger.Info().Msg("Migrating database...")
ctx.Logger.Info().Msg("Migrating database...")
_ = goose.SetDialect("postgres")
goose.AddNamedMigration("1_initial.go", InitialUp, nil)
@@ -47,14 +47,14 @@ func Migrate() {
goose.AddNamedMigration("4_passworded_pastes.go", PasswordedPastesUp, PasswordedPastesDown)
// Add new migrations BEFORE this message.
dbConn := c.Database.GetDatabaseConnection()
dbConn := ctx.Database.GetDatabaseConnection()
if dbConn != nil {
err := goose.Up(dbConn, ".")
if err != nil {
c.Logger.Info().Msgf("%+v", err)
c.Logger.Panic().Msgf("Failed to migrate database to latest version: %s", err.Error())
ctx.Logger.Info().Msgf("%+v", err)
ctx.Logger.Panic().Msgf("Failed to migrate database to latest version: %s", err.Error())
}
} else {
c.Logger.Warn().Msg("Current database dialect isn't supporting migrations, skipping")
ctx.Logger.Warn().Msg("Current database dialect isn't supporting migrations, skipping")
}
}

View File

@@ -28,6 +28,7 @@ package postgresql
import (
"database/sql"
"fmt"
"net"
"time"
// PostgreSQL driver.
@@ -83,7 +84,7 @@ func (db *Database) GetDatabaseConnection() *sql.DB {
func (db *Database) GetPaste(pasteID int) (*structs.Paste, error) {
db.check()
// nolint:exhaustivestruct
// nolint:exhaustruct
paste := &structs.Paste{}
err := db.db.Get(paste, db.db.Rebind("SELECT * FROM pastes WHERE id=$1"), pasteID)
@@ -113,10 +114,10 @@ func (db *Database) GetPagedPastes(page int) ([]structs.Paste, error) {
// Pagination.
startPagination := 0
if page > 1 {
startPagination = (page - 1) * c.Config.Pastes.Pagination
startPagination = (page - 1) * ctx.Config.Pastes.Pagination
}
err := db.db.Select(&pastesRaw, db.db.Rebind("SELECT * FROM pastes WHERE private != true ORDER BY id DESC LIMIT $1 OFFSET $2"), c.Config.Pastes.Pagination, startPagination)
err := db.db.Select(&pastesRaw, db.db.Rebind("SELECT * FROM pastes WHERE private != true ORDER BY id DESC LIMIT $1 OFFSET $2"), ctx.Config.Pastes.Pagination, startPagination)
if err != nil {
// nolint:wrapcheck
return nil, err
@@ -158,9 +159,9 @@ func (db *Database) GetPastesPages() int {
}
// Calculate pages.
pages := len(pastes) / c.Config.Pastes.Pagination
pages := len(pastes) / ctx.Config.Pastes.Pagination
// Check if we have any remainder. Add 1 to pages count if so.
if len(pastes)%c.Config.Pastes.Pagination > 0 {
if len(pastes)%ctx.Config.Pastes.Pagination > 0 {
pages++
}
@@ -169,31 +170,31 @@ func (db *Database) GetPastesPages() int {
// Initialize initializes MySQL/MariaDB connection.
func (db *Database) Initialize() {
c.Logger.Info().Msg("Initializing database connection...")
ctx.Logger.Info().Msg("Initializing database connection...")
var userpass string
if c.Config.Database.Password == "" {
userpass = c.Config.Database.Username
if ctx.Config.Database.Password == "" {
userpass = ctx.Config.Database.Username
} else {
userpass = c.Config.Database.Username + ":" + c.Config.Database.Password
userpass = ctx.Config.Database.Username + ":" + ctx.Config.Database.Password
}
dbConnString := fmt.Sprintf("postgres://%s@%s:%s/%s?connect_timeout=10&fallback_application_name=fastpastebin&sslmode=disable", userpass, c.Config.Database.Address, c.Config.Database.Port, c.Config.Database.Database)
c.Logger.Debug().Str("DSN", dbConnString).Msg("Database connection string composed")
dbConnString := fmt.Sprintf("postgres://%s@%s/%s?connect_timeout=10&fallback_application_name=fastpastebin&sslmode=disable", userpass, net.JoinHostPort(ctx.Config.Database.Address, ctx.Config.Database.Port), ctx.Config.Database.Database)
ctx.Logger.Debug().Str("DSN", dbConnString).Msg("Database connection string composed")
dbConn, err := sqlx.Connect("postgres", dbConnString)
if err != nil {
c.Logger.Error().Err(err).Msg("Failed to connect to database")
ctx.Logger.Error().Err(err).Msg("Failed to connect to database")
return
}
c.Logger.Info().Msg("Database connection established")
ctx.Logger.Info().Msg("Database connection established")
db.db = dbConn
// Perform migrations.
migrations.New(c)
migrations.New(ctx)
migrations.Migrate()
}
@@ -206,22 +207,22 @@ func (db *Database) SavePaste(paste *structs.Paste) (int64, error) {
return 0, err
}
var id int64
var newPasteID int64
err = stmt.Get(&id, paste)
err = stmt.Get(&newPasteID, paste)
if err != nil {
// nolint:wrapcheck
return 0, err
}
return id, nil
return newPasteID, nil
}
func (db *Database) Shutdown() {
if db.db != nil {
err := db.db.Close()
if err != nil {
c.Logger.Error().Err(err).Msg("Failed to close database connection")
ctx.Logger.Error().Err(err).Msg("Failed to close database connection")
}
}
}