46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package turso
|
|
|
|
import (
|
|
"github.com/jmoiron/sqlx"
|
|
"trankilou.fr/lassistanoque/backend/internal/adapter/database/dberrors"
|
|
"trankilou.fr/lassistanoque/backend/internal/domain"
|
|
"trankilou.fr/lassistanoque/backend/internal/utility"
|
|
)
|
|
|
|
type TursoSettingsRepository struct {
|
|
DB *sqlx.DB
|
|
}
|
|
|
|
func (sr *TursoSettingsRepository) GetSettings() (*domain.Settings, error) {
|
|
var settings domain.Settings
|
|
err := sr.DB.Get(&settings, "select * from settings limit 1")
|
|
return &settings, err
|
|
}
|
|
|
|
func (sr *TursoSettingsRepository) UpdateSettings(setting *domain.Settings) (*domain.Settings, error) {
|
|
newVersion := utility.GenID()
|
|
|
|
res, err := sr.DB.Exec(
|
|
`update settings
|
|
set chat_model_id=$1,
|
|
default_lang=$2,
|
|
register_enabled=$3,
|
|
password_enabled=$4,
|
|
_version=:$5
|
|
where _version=$6`,
|
|
setting.ChatModelID, setting.DefaultLang, setting.RegisterEnabled,
|
|
setting.PasswordEnabled, newVersion, setting.VersionId,
|
|
)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if count, _ := res.RowsAffected(); count == 0 {
|
|
return nil, dberrors.ErrNoRowUpdated
|
|
}
|
|
|
|
setting.VersionId = newVersion
|
|
|
|
return setting, nil
|
|
}
|