first commit
This commit is contained in:
@@ -1,45 +1,34 @@
|
||||
package turso
|
||||
|
||||
import (
|
||||
"github.com/jmoiron/sqlx"
|
||||
"trankilou.fr/lassistanoque/backend/internal/adapter/database/dberrors"
|
||||
"database/sql"
|
||||
"log"
|
||||
|
||||
"gitea.trankilou.fr/fabien/lasebuche"
|
||||
"trankilou.fr/lassistanoque/backend/internal/domain"
|
||||
"trankilou.fr/lassistanoque/backend/internal/utility"
|
||||
)
|
||||
|
||||
type TursoSettingsRepository struct {
|
||||
DB *sqlx.DB
|
||||
db *sql.DB
|
||||
SettingsTable lasebuche.Table[domain.Settings]
|
||||
}
|
||||
|
||||
func NewTursoSettingsRepository(db *sql.DB) *TursoSettingsRepository {
|
||||
dialect := lasebuche.NewSqliteDialect()
|
||||
settingsTable, err := lasebuche.NewTable[domain.Settings](db, dialect, "settings")
|
||||
if err != nil {
|
||||
log.Fatalf("error creating lasebuche team table")
|
||||
}
|
||||
return &TursoSettingsRepository{
|
||||
db: db,
|
||||
SettingsTable: settingsTable,
|
||||
}
|
||||
}
|
||||
|
||||
func (sr *TursoSettingsRepository) GetSettings() (*domain.Settings, error) {
|
||||
var settings domain.Settings
|
||||
err := sr.DB.Get(&settings, "select * from settings limit 1")
|
||||
return &settings, err
|
||||
return sr.SettingsTable.Get("settings")
|
||||
}
|
||||
|
||||
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
|
||||
return sr.SettingsTable.Update(setting)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user