Files
smart-search-back/internal/grpc/auth_handler.go
vallyenfail 80e5f318a9
All checks were successful
Deploy Smart Search Backend Test / deploy (push) Successful in 1m24s
add service
2026-01-18 01:48:46 +03:00

92 lines
2.1 KiB
Go

package grpc
import (
"context"
"git.techease.ru/Smart-search/smart-search-back/pkg/errors"
pb "git.techease.ru/Smart-search/smart-search-back/pkg/pb/auth"
"go.uber.org/zap"
)
func (h *AuthHandler) Register(ctx context.Context, req *pb.RegisterRequest) (*pb.RegisterResponse, error) {
accessToken, refreshToken, err := h.authService.Register(
ctx,
req.Email,
req.Password,
req.Name,
req.Phone,
req.InviteCode,
req.Ip,
req.UserAgent,
)
if err != nil {
return nil, errors.ToGRPCError(err, h.logger, "AuthService.Register")
}
return &pb.RegisterResponse{
AccessToken: accessToken,
RefreshToken: refreshToken,
}, nil
}
func (h *AuthHandler) Login(ctx context.Context, req *pb.LoginRequest) (*pb.LoginResponse, error) {
accessToken, refreshToken, err := h.authService.Login(
ctx,
req.Email,
req.Password,
req.Ip,
req.UserAgent,
)
if err != nil {
return nil, errors.ToGRPCError(err, h.logger, "AuthService.Login")
}
return &pb.LoginResponse{
AccessToken: accessToken,
RefreshToken: refreshToken,
}, nil
}
func (h *AuthHandler) Refresh(ctx context.Context, req *pb.RefreshRequest) (*pb.RefreshResponse, error) {
accessToken, err := h.authService.Refresh(ctx, req.RefreshToken)
if err != nil {
return nil, errors.ToGRPCError(err, h.logger, "AuthService.Refresh")
}
return &pb.RefreshResponse{
AccessToken: accessToken,
RefreshToken: req.RefreshToken,
}, nil
}
func (h *AuthHandler) Validate(ctx context.Context, req *pb.ValidateRequest) (*pb.ValidateResponse, error) {
userID, err := h.authService.Validate(ctx, req.AccessToken)
if err != nil {
h.logger.Warn("Token validation failed",
zap.String("method", "AuthService.Validate"),
zap.Error(err),
)
return &pb.ValidateResponse{
Valid: false,
UserId: 0,
}, nil
}
return &pb.ValidateResponse{
Valid: true,
UserId: int64(userID),
}, nil
}
func (h *AuthHandler) Logout(ctx context.Context, req *pb.LogoutRequest) (*pb.LogoutResponse, error) {
err := h.authService.Logout(ctx, req.AccessToken)
if err != nil {
return nil, errors.ToGRPCError(err, h.logger, "AuthService.Logout")
}
return &pb.LogoutResponse{
Success: true,
}, nil
}