user usecases & repository methods

This commit is contained in:
yash 2026-02-25 20:55:10 +03:00
parent 7f6cd8e557
commit 39b89fc404
5 changed files with 125 additions and 0 deletions

View file

@ -0,0 +1,19 @@
package usecase
import (
"log/slog"
"gitea.computernetthings.ru/yash/crypto_alert_bot/internal/repository"
)
type Usecase struct {
log *slog.Logger
storage repository.Storage
}
func New(log *slog.Logger, storage repository.Storage) *Usecase {
return &Usecase{
log: log,
storage: storage,
}
}

38
internal/usecase/user.go Normal file
View file

@ -0,0 +1,38 @@
package usecase
import (
"context"
"fmt"
"gitea.computernetthings.ru/yash/crypto_alert_bot/internal/entities"
)
func (uc *Usecase) RegisterNewUser(ctx context.Context, user *entities.User) error {
_, err := uc.storage.SaveUser(ctx, user)
if err != nil {
uc.log.Error("failed to register new user", "user", user, "err", err)
return fmt.Errorf("failed to register new user: %w", err)
}
return nil
}
func (uc *Usecase) UserByID(ctx context.Context, userID entities.UserID) (*entities.User, error) {
user, err := uc.storage.UserByID(ctx, userID)
if err != nil {
uc.log.Error("failed to get user by id", "user_id", userID, "err", err)
return nil, fmt.Errorf("failed to get user by id: %w", err)
}
return user, nil
}
func (uc *Usecase) UserByTgID(ctx context.Context, telegramID entities.TelegramID) (*entities.User, error) {
user, err := uc.storage.UserByTelegramID(ctx, telegramID)
if err != nil {
uc.log.Error("failed to get user by telegram id", "tg_id", telegramID, "err", err)
return nil, fmt.Errorf("failed to get user by telegram id: %w", err)
}
return user, nil
}