25 lines
724 B
Go
25 lines
724 B
Go
package repository
|
|
|
|
import "log/slog"
|
|
|
|
// UserDB — интерфейс базы данных, который нужен UserRepo.
|
|
type UserDB interface {
|
|
Query(query string) error
|
|
QueryRow(query string) error
|
|
Exec(query string) error
|
|
}
|
|
|
|
// UserRepo — интерфейс репозитория пользователей.
|
|
type UserRepo interface{}
|
|
|
|
// userRepo — конкретная реализация, скрыта от внешних пакетов.
|
|
type userRepo struct {
|
|
db UserDB
|
|
}
|
|
|
|
// NewUserRepo создаёт репозиторий пользователей.
|
|
func NewUserRepo(db UserDB) UserRepo {
|
|
slog.Info("репозиторий пользователей создан")
|
|
return &userRepo{db: db}
|
|
}
|