revert: remove SQLite support

An MMO server without multiplayer defeats the purpose. PostgreSQL
is the right choice and Docker Compose already solves the setup
pain. This reverts the common/db wrapper, SQLite schema, config
Driver field, modernc.org/sqlite dependency, and all repo type
changes while keeping the dashboard, wizard, and CI improvements
from the previous commit.
This commit is contained in:
Houmgaor
2026-03-05 23:05:55 +01:00
parent ecfe58ffb4
commit ba7ec122f8
68 changed files with 222 additions and 1575 deletions

View File

@@ -3,16 +3,16 @@ package channelserver
import (
"fmt"
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// AchievementRepository centralizes all database access for the achievements table.
type AchievementRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewAchievementRepository creates a new AchievementRepository.
func NewAchievementRepository(db *dbutil.DB) *AchievementRepository {
func NewAchievementRepository(db *sqlx.DB) *AchievementRepository {
return &AchievementRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"github.com/jmoiron/sqlx"
@@ -12,7 +11,7 @@ func setupAchievementRepo(t *testing.T) (*AchievementRepository, *sqlx.DB, uint3
db := SetupTestDB(t)
userID := CreateTestUser(t, db, "ach_test_user")
charID := CreateTestCharacter(t, db, userID, "AchChar")
repo := NewAchievementRepository(dbutil.Wrap(db))
repo := NewAchievementRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, charID
}

View File

@@ -1,16 +1,16 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// CafeRepository centralizes all database access for cafe-related tables.
type CafeRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewCafeRepository creates a new CafeRepository.
func NewCafeRepository(db *dbutil.DB) *CafeRepository {
func NewCafeRepository(db *sqlx.DB) *CafeRepository {
return &CafeRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"github.com/jmoiron/sqlx"
@@ -12,7 +11,7 @@ func setupCafeRepo(t *testing.T) (*CafeRepository, *sqlx.DB, uint32) {
db := SetupTestDB(t)
userID := CreateTestUser(t, db, "cafe_test_user")
charID := CreateTestCharacter(t, db, userID, "CafeChar")
repo := NewCafeRepository(dbutil.Wrap(db))
repo := NewCafeRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, charID
}

View File

@@ -4,16 +4,16 @@ import (
"database/sql"
"time"
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// CharacterRepository centralizes all database access for the characters table.
type CharacterRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewCharacterRepository creates a new CharacterRepository.
func NewCharacterRepository(db *dbutil.DB) *CharacterRepository {
func NewCharacterRepository(db *sqlx.DB) *CharacterRepository {
return &CharacterRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"time"
@@ -13,7 +12,7 @@ func setupCharRepo(t *testing.T) (*CharacterRepository, *sqlx.DB, uint32) {
db := SetupTestDB(t)
userID := CreateTestUser(t, db, "repo_test_user")
charID := CreateTestCharacter(t, db, userID, "RepoChar")
repo := NewCharacterRepository(dbutil.Wrap(db))
repo := NewCharacterRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, charID
}

View File

@@ -1,17 +1,17 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// DistributionRepository centralizes all database access for the distribution,
// distribution_items, and distributions_accepted tables.
type DistributionRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewDistributionRepository creates a new DistributionRepository.
func NewDistributionRepository(db *dbutil.DB) *DistributionRepository {
func NewDistributionRepository(db *sqlx.DB) *DistributionRepository {
return &DistributionRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"github.com/jmoiron/sqlx"
@@ -12,7 +11,7 @@ func setupDistributionRepo(t *testing.T) (*DistributionRepository, *sqlx.DB, uin
db := SetupTestDB(t)
userID := CreateTestUser(t, db, "dist_test_user")
charID := CreateTestCharacter(t, db, userID, "DistChar")
repo := NewDistributionRepository(dbutil.Wrap(db))
repo := NewDistributionRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, charID
}

View File

@@ -1,16 +1,16 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// DivaRepository centralizes all database access for diva defense events.
type DivaRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewDivaRepository creates a new DivaRepository.
func NewDivaRepository(db *dbutil.DB) *DivaRepository {
func NewDivaRepository(db *sqlx.DB) *DivaRepository {
return &DivaRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"github.com/jmoiron/sqlx"
@@ -10,7 +9,7 @@ import (
func setupDivaRepo(t *testing.T) (*DivaRepository, *sqlx.DB) {
t.Helper()
db := SetupTestDB(t)
repo := NewDivaRepository(dbutil.Wrap(db))
repo := NewDivaRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db
}

View File

@@ -4,7 +4,7 @@ import (
"context"
"time"
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// EventQuest represents a row from the event_quests table.
@@ -22,11 +22,11 @@ type EventQuest struct {
// EventRepository centralizes all database access for event-related tables.
type EventRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewEventRepository creates a new EventRepository.
func NewEventRepository(db *dbutil.DB) *EventRepository {
func NewEventRepository(db *sqlx.DB) *EventRepository {
return &EventRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"time"
@@ -11,7 +10,7 @@ import (
func setupEventRepo(t *testing.T) (*EventRepository, *sqlx.DB) {
t.Helper()
db := SetupTestDB(t)
repo := NewEventRepository(dbutil.Wrap(db))
repo := NewEventRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db
}

View File

@@ -4,17 +4,17 @@ import (
"context"
"database/sql"
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// FestaRepository centralizes all database access for festa-related tables
// (events, festa_registrations, festa_submissions, festa_prizes, festa_prizes_accepted, festa_trials, guild_characters).
type FestaRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewFestaRepository creates a new FestaRepository.
func NewFestaRepository(db *dbutil.DB) *FestaRepository {
func NewFestaRepository(db *sqlx.DB) *FestaRepository {
return &FestaRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"time"
@@ -14,7 +13,7 @@ func setupFestaRepo(t *testing.T) (*FestaRepository, *sqlx.DB, uint32, uint32) {
userID := CreateTestUser(t, db, "festa_test_user")
charID := CreateTestCharacter(t, db, userID, "FestaChar")
guildID := CreateTestGuild(t, db, charID, "FestaGuild")
repo := NewFestaRepository(dbutil.Wrap(db))
repo := NewFestaRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, charID, guildID
}

View File

@@ -5,17 +5,17 @@ import (
"errors"
"time"
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// GachaRepository centralizes all database access for gacha-related tables
// (gacha_shop, gacha_entries, gacha_items, gacha_stepup, gacha_box).
type GachaRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewGachaRepository creates a new GachaRepository.
func NewGachaRepository(db *dbutil.DB) *GachaRepository {
func NewGachaRepository(db *sqlx.DB) *GachaRepository {
return &GachaRepository{db: db}
}

View File

@@ -3,7 +3,6 @@ package channelserver
import (
"database/sql"
"errors"
dbutil "erupe-ce/common/db"
"testing"
"github.com/jmoiron/sqlx"
@@ -14,7 +13,7 @@ func setupGachaRepo(t *testing.T) (*GachaRepository, *sqlx.DB, uint32) {
db := SetupTestDB(t)
userID := CreateTestUser(t, db, "gacha_test_user")
charID := CreateTestCharacter(t, db, userID, "GachaChar")
repo := NewGachaRepository(dbutil.Wrap(db))
repo := NewGachaRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, charID
}

View File

@@ -3,16 +3,16 @@ package channelserver
import (
"fmt"
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// GoocooRepository centralizes all database access for the goocoo table.
type GoocooRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewGoocooRepository creates a new GoocooRepository.
func NewGoocooRepository(db *dbutil.DB) *GoocooRepository {
func NewGoocooRepository(db *sqlx.DB) *GoocooRepository {
return &GoocooRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"github.com/jmoiron/sqlx"
@@ -12,7 +11,7 @@ func setupGoocooRepo(t *testing.T) (*GoocooRepository, *sqlx.DB, uint32) {
db := SetupTestDB(t)
userID := CreateTestUser(t, db, "goocoo_test_user")
charID := CreateTestCharacter(t, db, userID, "GoocooChar")
repo := NewGoocooRepository(dbutil.Wrap(db))
repo := NewGoocooRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, charID
}

View File

@@ -6,19 +6,17 @@ import (
"errors"
"fmt"
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// GuildRepository centralizes all database access for guild-related tables
// (guilds, guild_characters, guild_applications).
type GuildRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewGuildRepository creates a new GuildRepository.
func NewGuildRepository(db *dbutil.DB) *GuildRepository {
func NewGuildRepository(db *sqlx.DB) *GuildRepository {
return &GuildRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"fmt"
"testing"
"time"
@@ -14,7 +13,7 @@ func setupGuildRepo(t *testing.T) (*GuildRepository, *sqlx.DB, uint32, uint32) {
db := SetupTestDB(t)
userID := CreateTestUser(t, db, "guild_test_user")
charID := CreateTestCharacter(t, db, userID, "GuildLeader")
repo := NewGuildRepository(dbutil.Wrap(db))
repo := NewGuildRepository(db)
guildID := CreateTestGuild(t, db, charID, "TestGuild")
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, guildID, charID
@@ -83,7 +82,7 @@ func TestGetByCharIDNotFound(t *testing.T) {
func TestCreate(t *testing.T) {
db := SetupTestDB(t)
defer TeardownTestDB(t, db)
repo := NewGuildRepository(dbutil.Wrap(db))
repo := NewGuildRepository(db)
userID := CreateTestUser(t, db, "create_guild_user")
charID := CreateTestCharacter(t, db, userID, "CreateLeader")

View File

@@ -3,17 +3,17 @@ package channelserver
import (
"fmt"
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// HouseRepository centralizes all database access for house-related tables
// (user_binary house columns, warehouse, titles).
type HouseRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewHouseRepository creates a new HouseRepository.
func NewHouseRepository(db *dbutil.DB) *HouseRepository {
func NewHouseRepository(db *sqlx.DB) *HouseRepository {
return &HouseRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"github.com/jmoiron/sqlx"
@@ -13,7 +12,7 @@ func setupHouseRepo(t *testing.T) (*HouseRepository, *sqlx.DB, uint32) {
userID := CreateTestUser(t, db, "house_test_user")
charID := CreateTestCharacter(t, db, userID, "HouseChar")
CreateTestUserBinary(t, db, charID)
repo := NewHouseRepository(dbutil.Wrap(db))
repo := NewHouseRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, charID
}

View File

@@ -1,16 +1,16 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// MailRepository centralizes all database access for the mail table.
type MailRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewMailRepository creates a new MailRepository.
func NewMailRepository(db *dbutil.DB) *MailRepository {
func NewMailRepository(db *sqlx.DB) *MailRepository {
return &MailRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"github.com/jmoiron/sqlx"
@@ -14,7 +13,7 @@ func setupMailRepo(t *testing.T) (*MailRepository, *sqlx.DB, uint32, uint32) {
senderID := CreateTestCharacter(t, db, userID, "Sender")
userID2 := CreateTestUser(t, db, "mail_recipient")
recipientID := CreateTestCharacter(t, db, userID2, "Recipient")
repo := NewMailRepository(dbutil.Wrap(db))
repo := NewMailRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, senderID, recipientID
}

View File

@@ -4,16 +4,16 @@ import (
"fmt"
"time"
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// MercenaryRepository centralizes database access for mercenary/rasta/airou sequences and queries.
type MercenaryRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewMercenaryRepository creates a new MercenaryRepository.
func NewMercenaryRepository(db *dbutil.DB) *MercenaryRepository {
func NewMercenaryRepository(db *sqlx.DB) *MercenaryRepository {
return &MercenaryRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"github.com/jmoiron/sqlx"
@@ -13,7 +12,7 @@ func setupMercenaryRepo(t *testing.T) (*MercenaryRepository, *sqlx.DB, uint32, u
userID := CreateTestUser(t, db, "merc_test_user")
charID := CreateTestCharacter(t, db, userID, "MercChar")
guildID := CreateTestGuild(t, db, charID, "MercGuild")
repo := NewMercenaryRepository(dbutil.Wrap(db))
repo := NewMercenaryRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, charID, guildID
}

View File

@@ -3,16 +3,16 @@ package channelserver
import (
"fmt"
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// MiscRepository centralizes database access for miscellaneous game tables.
type MiscRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewMiscRepository creates a new MiscRepository.
func NewMiscRepository(db *dbutil.DB) *MiscRepository {
func NewMiscRepository(db *sqlx.DB) *MiscRepository {
return &MiscRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"github.com/jmoiron/sqlx"
@@ -10,7 +9,7 @@ import (
func setupMiscRepo(t *testing.T) (*MiscRepository, *sqlx.DB) {
t.Helper()
db := SetupTestDB(t)
repo := NewMiscRepository(dbutil.Wrap(db))
repo := NewMiscRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db
}

View File

@@ -3,16 +3,16 @@ package channelserver
import (
"fmt"
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// RengokuRepository centralizes all database access for the rengoku_score table.
type RengokuRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewRengokuRepository creates a new RengokuRepository.
func NewRengokuRepository(db *dbutil.DB) *RengokuRepository {
func NewRengokuRepository(db *sqlx.DB) *RengokuRepository {
return &RengokuRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"github.com/jmoiron/sqlx"
@@ -13,7 +12,7 @@ func setupRengokuRepo(t *testing.T) (*RengokuRepository, *sqlx.DB, uint32, uint3
userID := CreateTestUser(t, db, "rengoku_test_user")
charID := CreateTestCharacter(t, db, userID, "RengokuChar")
guildID := CreateTestGuild(t, db, charID, "RengokuGuild")
repo := NewRengokuRepository(dbutil.Wrap(db))
repo := NewRengokuRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, charID, guildID
}

View File

@@ -3,16 +3,16 @@ package channelserver
import (
"fmt"
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// ScenarioRepository centralizes all database access for the scenario_counter table.
type ScenarioRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewScenarioRepository creates a new ScenarioRepository.
func NewScenarioRepository(db *dbutil.DB) *ScenarioRepository {
func NewScenarioRepository(db *sqlx.DB) *ScenarioRepository {
return &ScenarioRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"github.com/jmoiron/sqlx"
@@ -10,7 +9,7 @@ import (
func setupScenarioRepo(t *testing.T) (*ScenarioRepository, *sqlx.DB) {
t.Helper()
db := SetupTestDB(t)
repo := NewScenarioRepository(dbutil.Wrap(db))
repo := NewScenarioRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db
}

View File

@@ -1,16 +1,16 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// SessionRepository centralizes all database access for sign_sessions and servers tables.
type SessionRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewSessionRepository creates a new SessionRepository.
func NewSessionRepository(db *dbutil.DB) *SessionRepository {
func NewSessionRepository(db *sqlx.DB) *SessionRepository {
return &SessionRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"github.com/jmoiron/sqlx"
@@ -14,7 +13,7 @@ func setupSessionRepo(t *testing.T) (*SessionRepository, *sqlx.DB, uint32, uint3
charID := CreateTestCharacter(t, db, userID, "SessionChar")
token := "test_token_12345"
sessionID := CreateTestSignSession(t, db, userID, token)
repo := NewSessionRepository(dbutil.Wrap(db))
repo := NewSessionRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, userID, charID, sessionID, token
}

View File

@@ -1,16 +1,16 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// ShopRepository centralizes all database access for shop-related tables.
type ShopRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewShopRepository creates a new ShopRepository.
func NewShopRepository(db *dbutil.DB) *ShopRepository {
func NewShopRepository(db *sqlx.DB) *ShopRepository {
return &ShopRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"github.com/jmoiron/sqlx"
@@ -12,7 +11,7 @@ func setupShopRepo(t *testing.T) (*ShopRepository, *sqlx.DB, uint32) {
db := SetupTestDB(t)
userID := CreateTestUser(t, db, "shop_test_user")
charID := CreateTestCharacter(t, db, userID, "ShopChar")
repo := NewShopRepository(dbutil.Wrap(db))
repo := NewShopRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, charID
}

View File

@@ -4,16 +4,16 @@ import (
"fmt"
"time"
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// StampRepository centralizes all database access for the stamps table.
type StampRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewStampRepository creates a new StampRepository.
func NewStampRepository(db *dbutil.DB) *StampRepository {
func NewStampRepository(db *sqlx.DB) *StampRepository {
return &StampRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"time"
@@ -13,7 +12,7 @@ func setupStampRepo(t *testing.T) (*StampRepository, *sqlx.DB, uint32) {
db := SetupTestDB(t)
userID := CreateTestUser(t, db, "stamp_test_user")
charID := CreateTestCharacter(t, db, userID, "StampChar")
repo := NewStampRepository(dbutil.Wrap(db))
repo := NewStampRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, charID
}

View File

@@ -3,17 +3,17 @@ package channelserver
import (
"fmt"
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// TowerRepository centralizes all database access for tower-related tables
// (tower, guilds tower columns, guild_characters tower columns).
type TowerRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewTowerRepository creates a new TowerRepository.
func NewTowerRepository(db *dbutil.DB) *TowerRepository {
func NewTowerRepository(db *sqlx.DB) *TowerRepository {
return &TowerRepository{db: db}
}

View File

@@ -1,7 +1,6 @@
package channelserver
import (
dbutil "erupe-ce/common/db"
"testing"
"github.com/jmoiron/sqlx"
@@ -18,7 +17,7 @@ func setupTowerRepo(t *testing.T) (*TowerRepository, *sqlx.DB, uint32, uint32) {
if _, err := db.Exec("INSERT INTO guild_characters (guild_id, character_id) VALUES ($1, $2)", guildID, charID); err != nil {
t.Fatalf("Failed to add char to guild: %v", err)
}
repo := NewTowerRepository(dbutil.Wrap(db))
repo := NewTowerRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, charID, guildID
}

View File

@@ -4,16 +4,16 @@ import (
"database/sql"
"time"
dbutil "erupe-ce/common/db"
"github.com/jmoiron/sqlx"
)
// UserRepository centralizes all database access for the users table.
type UserRepository struct {
db *dbutil.DB
db *sqlx.DB
}
// NewUserRepository creates a new UserRepository.
func NewUserRepository(db *dbutil.DB) *UserRepository {
func NewUserRepository(db *sqlx.DB) *UserRepository {
return &UserRepository{db: db}
}

View File

@@ -2,7 +2,6 @@ package channelserver
import (
"database/sql"
dbutil "erupe-ce/common/db"
"testing"
"time"
@@ -13,7 +12,7 @@ func setupUserRepo(t *testing.T) (*UserRepository, *sqlx.DB, uint32) {
t.Helper()
db := SetupTestDB(t)
userID := CreateTestUser(t, db, "user_repo_test")
repo := NewUserRepository(dbutil.Wrap(db))
repo := NewUserRepository(db)
t.Cleanup(func() { TeardownTestDB(t, db) })
return repo, db, userID
}

View File

@@ -6,7 +6,6 @@ import (
"testing"
"time"
dbutil "erupe-ce/common/db"
"erupe-ce/common/mhfitem"
cfg "erupe-ce/config"
"erupe-ce/network/clientctx"
@@ -598,19 +597,18 @@ func createTestServerWithDB(t *testing.T, db *sqlx.DB) *Server {
server.logger = logger
// Initialize repositories
wdb := dbutil.Wrap(db)
server.charRepo = NewCharacterRepository(wdb)
server.guildRepo = NewGuildRepository(wdb)
server.userRepo = NewUserRepository(wdb)
server.gachaRepo = NewGachaRepository(wdb)
server.houseRepo = NewHouseRepository(wdb)
server.festaRepo = NewFestaRepository(wdb)
server.towerRepo = NewTowerRepository(wdb)
server.rengokuRepo = NewRengokuRepository(wdb)
server.mailRepo = NewMailRepository(wdb)
server.stampRepo = NewStampRepository(wdb)
server.distRepo = NewDistributionRepository(wdb)
server.sessionRepo = NewSessionRepository(wdb)
server.charRepo = NewCharacterRepository(db)
server.guildRepo = NewGuildRepository(db)
server.userRepo = NewUserRepository(db)
server.gachaRepo = NewGachaRepository(db)
server.houseRepo = NewHouseRepository(db)
server.festaRepo = NewFestaRepository(db)
server.towerRepo = NewTowerRepository(db)
server.rengokuRepo = NewRengokuRepository(db)
server.mailRepo = NewMailRepository(db)
server.stampRepo = NewStampRepository(db)
server.distRepo = NewDistributionRepository(db)
server.sessionRepo = NewSessionRepository(db)
return server
}

View File

@@ -11,7 +11,6 @@ import (
"time"
"erupe-ce/common/byteframe"
dbutil "erupe-ce/common/db"
cfg "erupe-ce/config"
"erupe-ce/network"
"erupe-ce/network/binpacket"
@@ -143,28 +142,27 @@ func NewServer(config *Config) *Server {
handlerTable: buildHandlerTable(),
}
wdb := dbutil.Wrap(config.DB)
s.charRepo = NewCharacterRepository(wdb)
s.guildRepo = NewGuildRepository(wdb)
s.userRepo = NewUserRepository(wdb)
s.gachaRepo = NewGachaRepository(wdb)
s.houseRepo = NewHouseRepository(wdb)
s.festaRepo = NewFestaRepository(wdb)
s.towerRepo = NewTowerRepository(wdb)
s.rengokuRepo = NewRengokuRepository(wdb)
s.mailRepo = NewMailRepository(wdb)
s.stampRepo = NewStampRepository(wdb)
s.distRepo = NewDistributionRepository(wdb)
s.sessionRepo = NewSessionRepository(wdb)
s.eventRepo = NewEventRepository(wdb)
s.achievementRepo = NewAchievementRepository(wdb)
s.shopRepo = NewShopRepository(wdb)
s.cafeRepo = NewCafeRepository(wdb)
s.goocooRepo = NewGoocooRepository(wdb)
s.divaRepo = NewDivaRepository(wdb)
s.miscRepo = NewMiscRepository(wdb)
s.scenarioRepo = NewScenarioRepository(wdb)
s.mercenaryRepo = NewMercenaryRepository(wdb)
s.charRepo = NewCharacterRepository(config.DB)
s.guildRepo = NewGuildRepository(config.DB)
s.userRepo = NewUserRepository(config.DB)
s.gachaRepo = NewGachaRepository(config.DB)
s.houseRepo = NewHouseRepository(config.DB)
s.festaRepo = NewFestaRepository(config.DB)
s.towerRepo = NewTowerRepository(config.DB)
s.rengokuRepo = NewRengokuRepository(config.DB)
s.mailRepo = NewMailRepository(config.DB)
s.stampRepo = NewStampRepository(config.DB)
s.distRepo = NewDistributionRepository(config.DB)
s.sessionRepo = NewSessionRepository(config.DB)
s.eventRepo = NewEventRepository(config.DB)
s.achievementRepo = NewAchievementRepository(config.DB)
s.shopRepo = NewShopRepository(config.DB)
s.cafeRepo = NewCafeRepository(config.DB)
s.goocooRepo = NewGoocooRepository(config.DB)
s.divaRepo = NewDivaRepository(config.DB)
s.miscRepo = NewMiscRepository(config.DB)
s.scenarioRepo = NewScenarioRepository(config.DB)
s.mercenaryRepo = NewMercenaryRepository(config.DB)
s.mailService = NewMailService(s.mailRepo, s.guildRepo, s.logger)
s.guildService = NewGuildService(s.guildRepo, s.mailService, s.charRepo, s.logger)

View File

@@ -8,7 +8,6 @@ import (
"testing"
"time"
dbutil "erupe-ce/common/db"
"erupe-ce/server/channelserver/compression/nullcomp"
"erupe-ce/server/migrations"
"github.com/jmoiron/sqlx"
@@ -331,26 +330,25 @@ func CreateTestGachaItem(t *testing.T, db *sqlx.DB, entryID uint32, itemType uin
// Use this in integration tests instead of setting s.server.db directly.
func SetTestDB(s *Server, db *sqlx.DB) {
s.db = db
wdb := dbutil.Wrap(db)
s.charRepo = NewCharacterRepository(wdb)
s.guildRepo = NewGuildRepository(wdb)
s.userRepo = NewUserRepository(wdb)
s.gachaRepo = NewGachaRepository(wdb)
s.houseRepo = NewHouseRepository(wdb)
s.festaRepo = NewFestaRepository(wdb)
s.towerRepo = NewTowerRepository(wdb)
s.rengokuRepo = NewRengokuRepository(wdb)
s.mailRepo = NewMailRepository(wdb)
s.stampRepo = NewStampRepository(wdb)
s.distRepo = NewDistributionRepository(wdb)
s.sessionRepo = NewSessionRepository(wdb)
s.eventRepo = NewEventRepository(wdb)
s.achievementRepo = NewAchievementRepository(wdb)
s.shopRepo = NewShopRepository(wdb)
s.cafeRepo = NewCafeRepository(wdb)
s.goocooRepo = NewGoocooRepository(wdb)
s.divaRepo = NewDivaRepository(wdb)
s.miscRepo = NewMiscRepository(wdb)
s.scenarioRepo = NewScenarioRepository(wdb)
s.mercenaryRepo = NewMercenaryRepository(wdb)
s.charRepo = NewCharacterRepository(db)
s.guildRepo = NewGuildRepository(db)
s.userRepo = NewUserRepository(db)
s.gachaRepo = NewGachaRepository(db)
s.houseRepo = NewHouseRepository(db)
s.festaRepo = NewFestaRepository(db)
s.towerRepo = NewTowerRepository(db)
s.rengokuRepo = NewRengokuRepository(db)
s.mailRepo = NewMailRepository(db)
s.stampRepo = NewStampRepository(db)
s.distRepo = NewDistributionRepository(db)
s.sessionRepo = NewSessionRepository(db)
s.eventRepo = NewEventRepository(db)
s.achievementRepo = NewAchievementRepository(db)
s.shopRepo = NewShopRepository(db)
s.cafeRepo = NewCafeRepository(db)
s.goocooRepo = NewGoocooRepository(db)
s.divaRepo = NewDivaRepository(db)
s.miscRepo = NewMiscRepository(db)
s.scenarioRepo = NewScenarioRepository(db)
s.mercenaryRepo = NewMercenaryRepository(db)
}