some fixes and new features
This commit is contained in:
@@ -8,14 +8,14 @@ import (
|
||||
"github.com/vinovest/sqlx"
|
||||
)
|
||||
|
||||
type RPGeneralPreset struct {
|
||||
type RPPreset struct {
|
||||
ID string
|
||||
Name string
|
||||
Description string
|
||||
PreHistory string `db:"pre_history"`
|
||||
PostHistory string `db:"post_history"`
|
||||
}
|
||||
type RPScenarios struct {
|
||||
type RPScenario struct {
|
||||
ID int
|
||||
Name string
|
||||
Description string
|
||||
@@ -31,7 +31,7 @@ type RPUser struct {
|
||||
UserID int64 `db:"user_id"`
|
||||
UserPrompt string `db:"user_prompt"`
|
||||
SelectedPreset string `db:"selected_preset"`
|
||||
Preset *RPGeneralPreset
|
||||
Preset *RPPreset
|
||||
SelectedModel string `db:"selected_model"`
|
||||
Model *RPModel
|
||||
UsedTokens int64 `db:"used_tokens"`
|
||||
@@ -85,7 +85,7 @@ func (rep *RPRepository) UpdateUser(user *RPUser) error {
|
||||
)
|
||||
return err
|
||||
}
|
||||
func (rep *RPRepository) UpdateUserPreset(user *RPUser, presetId string) (*RPGeneralPreset, error) {
|
||||
func (rep *RPRepository) UpdateUserPreset(user *RPUser, presetId string) (*RPPreset, error) {
|
||||
preset, err := rep.GetPreset(presetId)
|
||||
if err != nil {
|
||||
return preset, err
|
||||
@@ -93,7 +93,7 @@ func (rep *RPRepository) UpdateUserPreset(user *RPUser, presetId string) (*RPGen
|
||||
_, err = rep.db.Exec("UPDATE rp_users SET selected_preset=$1 WHERE user_id=$2;", presetId, user.UserID)
|
||||
return preset, err
|
||||
}
|
||||
func (rep *RPRepository) GetUserPreset(user *RPUser) (*RPGeneralPreset, error) {
|
||||
func (rep *RPRepository) GetUserPreset(user *RPUser) (*RPPreset, error) {
|
||||
preset, err := rep.GetPreset(user.SelectedPreset)
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
return rep.UpdateUserPreset(user, "soft")
|
||||
@@ -101,24 +101,24 @@ func (rep *RPRepository) GetUserPreset(user *RPUser) (*RPGeneralPreset, error) {
|
||||
return preset, err
|
||||
}
|
||||
|
||||
func (rep *RPRepository) GetAllPresets() ([]*RPGeneralPreset, error) {
|
||||
presets := make([]*RPGeneralPreset, 0)
|
||||
err := rep.db.Select(&presets, "SELECT * FROM rp_general_presets ORDER BY id;")
|
||||
func (rep *RPRepository) GetAllPresets() ([]*RPPreset, error) {
|
||||
presets := make([]*RPPreset, 0)
|
||||
err := rep.db.Select(&presets, "SELECT * FROM rp_presets ORDER BY id;")
|
||||
return presets, err
|
||||
}
|
||||
func (rep *RPRepository) GetPreset(id string) (*RPGeneralPreset, error) {
|
||||
preset := new(RPGeneralPreset)
|
||||
err := rep.db.Get(preset, "SELECT * FROM rp_general_presets WHERE id=$1;", id)
|
||||
func (rep *RPRepository) GetPreset(id string) (*RPPreset, error) {
|
||||
preset := new(RPPreset)
|
||||
err := rep.db.Get(preset, "SELECT * FROM rp_presets WHERE id=$1;", id)
|
||||
return preset, err
|
||||
}
|
||||
|
||||
func (rep *RPRepository) GetAllScenarios() ([]*RPScenarios, error) {
|
||||
scenarios := make([]*RPScenarios, 0)
|
||||
func (rep *RPRepository) GetAllScenarios() ([]*RPScenario, error) {
|
||||
scenarios := make([]*RPScenario, 0)
|
||||
err := rep.db.Select(&scenarios, "SELECT * FROM rp_scenarios ORDER BY id;")
|
||||
return scenarios, err
|
||||
}
|
||||
func (rep *RPRepository) GetScenario(id int) (*RPScenarios, error) {
|
||||
scenario := new(RPScenarios)
|
||||
func (rep *RPRepository) GetScenario(id int) (*RPScenario, error) {
|
||||
scenario := new(RPScenario)
|
||||
err := rep.db.Get(scenario, "SELECT * FROM rp_scenarios WHERE id=$1;", id)
|
||||
return scenario, err
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ func (rep *UserRepository) GetOrCreate(tgId int, name string) (*User, error) {
|
||||
|
||||
func (rep *UserRepository) Create(id int, name string) (*User, error) {
|
||||
user := new(User)
|
||||
err := rep.db.Get(user, "INSERT INTO users (id, name) VALUES (?, ?) RETURNING *;", id, name)
|
||||
err := rep.db.Get(user, "INSERT INTO users (id, name) VALUES ($1, $2) RETURNING *;", id, name)
|
||||
return user, err
|
||||
}
|
||||
|
||||
|
||||
@@ -62,6 +62,12 @@ func (rep *WaifuRepository) GetByUserId(userId int) ([]*Waifu, error) {
|
||||
return waifus, nil
|
||||
}
|
||||
|
||||
func (rep *WaifuRepository) GetCountByUserId(userId int) (int64, error) {
|
||||
var count int64 = 0
|
||||
err := rep.db.QueryRow("SELECT COUNT(*) FROM waifus WHERE owner_id=$1;", userId).Scan(&count)
|
||||
return count, err
|
||||
}
|
||||
|
||||
func (rep *WaifuRepository) GetFree() ([]*Waifu, error) {
|
||||
waifus, err := sqlx.List[*Waifu](rep.db, "SELECT * FROM waifus WHERE owner_id IS NULL;")
|
||||
return waifus, err
|
||||
|
||||
Reference in New Issue
Block a user