database changes

This commit is contained in:
2026-02-12 15:09:06 +03:00
parent c5448b14f6
commit 022cf4ba06
18 changed files with 202 additions and 223 deletions

View File

@@ -3,7 +3,6 @@ package psql
import (
"database/sql"
"git.nix13.pw/scuroneko/extypes"
"git.nix13.pw/scuroneko/laniakea"
"github.com/shopspring/decimal"
"github.com/vinovest/sqlx"
@@ -31,11 +30,9 @@ func NewWaifuRepository(db *laniakea.DatabaseContext) *WaifuRepository {
return &WaifuRepository{db: db.PostgresSQL}
}
func (rep *WaifuRepository) GetAll() (extypes.Slice[*Waifu], error) {
waifus, err := sqlx.List[*Waifu](rep.db, "SELECT waifus.* FROM waifus;")
if err != nil {
return nil, err
}
func (rep *WaifuRepository) GetAll() ([]Waifu, error) {
waifus, err := sqlx.List[Waifu](rep.db, "SELECT * FROM waifus;")
//userRep := newUserRepository(rep.db)
for _, waifu := range waifus {
if !waifu.OwnerID.Valid {
@@ -47,18 +44,20 @@ func (rep *WaifuRepository) GetAll() (extypes.Slice[*Waifu], error) {
return waifus, err
}
func (rep *WaifuRepository) GetByUserId(userId int) ([]*Waifu, error) {
waifus, err := sqlx.List[*Waifu](rep.db, "SELECT waifus.* FROM waifus WHERE owner_id=$1;", userId)
func (rep *WaifuRepository) GetByUserId(userId int) ([]Waifu, error) {
waifus, err := sqlx.List[Waifu](rep.db, "SELECT waifus.* FROM waifus WHERE owner_id=$1;", userId)
if err != nil {
return nil, err
}
userRep := newUserRepository(rep.db)
user, err := userRep.GetById(userId)
if err != nil {
return nil, err
}
for _, waifu := range waifus {
waifu.Owner = new(User)
err = rep.db.Get(waifu.Owner, "SELECT * FROM users WHERE id=$1;", waifu.OwnerID.Int64)
if err != nil {
return waifus, err
}
waifu.Owner = user
}
return waifus, nil
}
@@ -69,8 +68,8 @@ func (rep *WaifuRepository) GetCountByUserId(userId int) (int64, error) {
return count, err
}
func (rep *WaifuRepository) GetFree() ([]*Waifu, error) {
waifus, err := sqlx.List[*Waifu](rep.db, "SELECT * FROM waifus WHERE owner_id IS NULL;")
func (rep *WaifuRepository) GetFree() ([]Waifu, error) {
waifus, err := sqlx.List[Waifu](rep.db, "SELECT * FROM waifus WHERE owner_id IS NULL;")
return waifus, err
}
@@ -80,16 +79,16 @@ func (rep *WaifuRepository) GetFreeCount() (int64, error) {
return count, err
}
func (rep *WaifuRepository) GetFreeByRarity(rarity int) ([]*Waifu, error) {
waifus, err := sqlx.List[*Waifu](rep.db, "SELECT * FROM waifus WHERE owner_id IS NULL AND rarity=$1;", rarity)
func (rep *WaifuRepository) GetFreeByRarity(rarity int) ([]Waifu, error) {
waifus, err := sqlx.List[Waifu](rep.db, "SELECT * FROM waifus WHERE owner_id IS NULL AND rarity=$1;", rarity)
return waifus, err
}
func (rep *WaifuRepository) GetById(id int) (*Waifu, error) {
waifu := new(Waifu)
err := rep.db.Get(waifu, "SELECT * FROM waifus WHERE id=$1;", id)
func (rep *WaifuRepository) GetById(id int) (Waifu, error) {
waifu := Waifu{}
err := rep.db.Get(&waifu, "SELECT * FROM waifus WHERE id=$1;", id)
if err != nil {
return nil, err
return waifu, err
}
if !waifu.OwnerID.Valid {
return waifu, err