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) 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 }