renommage lassistanoque

This commit is contained in:
2026-08-07 00:03:15 +02:00
commit 5810c4c94f
73 changed files with 2601 additions and 0 deletions
@@ -0,0 +1,93 @@
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 TursoUserRepository struct {
DB *sqlx.DB
}
func (ur *TursoUserRepository) FindUser(id string) (*domain.User, error) {
var user domain.User
err := ur.DB.Get(&user, "select * from users where id=$1", id)
return &user, err
}
func (ur *TursoUserRepository) FindUserByEmail(email string) (*domain.User, error) {
var user domain.User
err := ur.DB.Get(&user, "select * from users where email=$1", email)
return &user, err
}
func (ur *TursoUserRepository) CountUsers() (int, error) {
var count int
err := ur.DB.Get(&count, "select count(*) from users")
return count, err
}
func (ur *TursoUserRepository) ListUsers() ([]*domain.User, error) {
var users []*domain.User
err := ur.DB.Select(&users, "select * from users order by lastname, firstname")
return users, err
}
func (ur *TursoUserRepository) CreateUser(user *domain.User) (*domain.User, error) {
count, err := ur.CountUsers()
if err != nil {
return nil, err
}
if count == 0 {
user.Administrator = true
}
user.ID = utility.GenID()
user.VersionId = utility.GenID()
ur.DB.NamedExec(
`insert into users (id, email, firstname, lastname, enabled, password, administrator, _version)
values (:id, :email, :firstname, :lastname, :enabled, :password, :administrator, :_version)`,
user)
return nil, nil
}
func (ur *TursoUserRepository) UpdateUser(user *domain.User) (*domain.User, error) {
newVersion := utility.GenID()
res, err := ur.DB.Exec(
`update users
set email=$1,
firstname=$2,
lastname=$3,
enabled=$4,
administrator=$5
_version=:$6
where id=$7 and _version=$8`,
user.Email, user.Firstname, user.Lastname,
user.Enabled, user.Administrator,
newVersion, user.ID, user.VersionId,
)
if err != nil {
return nil, err
}
if count, _ := res.RowsAffected(); count == 0 {
return nil, dberrors.ErrNoRowUpdated
}
user.VersionId = newVersion
return user, nil
}
func (ur *TursoUserRepository) DeleteUser(id string) error {
res, err := ur.DB.Exec("delete from users where id=$1", id)
if count, _ := res.RowsAffected(); count == 0 {
return dberrors.ErrNoRowUpdated
}
return err
}