Draft: feat login

This commit is contained in:
2025-09-05 03:59:25 +08:00
parent 6d7074198f
commit bce698a4ed
20 changed files with 593 additions and 83 deletions

39
implements/bunDatabase.go Normal file
View File

@@ -0,0 +1,39 @@
package implements
import (
"context"
"gitea.konchin.com/ytshih/inp2025/game/models"
"gitea.konchin.com/ytshih/inp2025/game/types"
"github.com/uptrace/bun"
)
type BunDatabase struct {
db *bun.DB
}
func NewBunDatabase(bunDB *bun.DB) *BunDatabase {
return &BunDatabase{db: bunDB}
}
func (self *BunDatabase) InsertUser(
ctx context.Context,
user models.User,
) error {
res, err := self.db.NewInsert().
Model(&user).
On("CONFLICT (username) DO NOTHING").
Exec(ctx)
if err != nil {
return err
}
if cnt, err := res.RowsAffected(); err != nil || cnt == 0 {
if err != nil {
return err
}
if cnt == 0 {
return types.UsernameConflictError
}
}
return nil
}