weiro/services/auth/service.go

37 lines
686 B
Go
Raw Normal View History

2026-02-25 11:04:47 +00:00
package auth
import (
"context"
"emperror.dev/errors"
"lmika.dev/lmika/weiro/models"
"lmika.dev/lmika/weiro/providers/db"
)
type Service struct {
db *db.Provider
}
func New(db *db.Provider) *Service {
return &Service{
db: db,
}
}
func (s *Service) Login(ctx context.Context, username, password string) (models.User, error) {
user, err := s.db.SelectUserByUsername(ctx, username)
if err != nil {
return models.User{}, err
}
if !user.CheckPassword(password) {
return models.User{}, errors.New("invalid password")
}
return user, nil
}
func (s *Service) GetUser(ctx context.Context, userID int64) (models.User, error) {
return s.db.SelectUserByID(ctx, userID)
}