64 lines
1.4 KiB
Go
64 lines
1.4 KiB
Go
package repo
|
|
|
|
import (
|
|
"context"
|
|
|
|
"git.logidex.ru/fakz9/logidex-id/internal/api/user/domain"
|
|
db "git.logidex.ru/fakz9/logidex-id/internal/db/generated"
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type userRepo struct {
|
|
db db.DBTX
|
|
}
|
|
|
|
func (u userRepo) VerifyUser(ctx context.Context, requestUuid string) (*db.User, error) {
|
|
//TODO implement me
|
|
|
|
queries := db.New(u.db)
|
|
uuidParsed, err := uuid.Parse(requestUuid)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
dbUser, err := queries.UpdateUserVerified(ctx, uuidParsed)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &dbUser, nil
|
|
}
|
|
|
|
func (u userRepo) GetUserByUuid(ctx context.Context, requestUuid string) (*db.User, error) {
|
|
queries := db.New(u.db)
|
|
uuidParsed, err := uuid.Parse(requestUuid)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
dbUser, err := queries.GetUserByUUID(ctx, uuidParsed)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &dbUser, nil
|
|
}
|
|
|
|
func (u userRepo) CreateUser(ctx context.Context, phoneNumber string) (*db.User, error) {
|
|
queries := db.New(u.db)
|
|
user, err := queries.CreateUser(ctx, phoneNumber)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &user, nil
|
|
}
|
|
|
|
func (u userRepo) GetUserByPhoneNumber(ctx context.Context, phoneNumber string) (*db.User, error) {
|
|
queries := db.New(u.db)
|
|
dbUser, err := queries.GetByPhoneNumber(ctx, phoneNumber)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &dbUser, nil
|
|
}
|
|
|
|
func NewUserRepo(db db.DBTX) domain.UserRepository {
|
|
return &userRepo{db: db}
|
|
}
|