package grpc import ( "context" "google.golang.org/protobuf/types/known/emptypb" pb "datarush/pkg/api/user" ) type UserService interface { GetProfile(ctx context.Context, req *pb.GetProfileRequest) (*pb.User, error) RegisterForCompetition(ctx context.Context, req *pb.RegisterForCompetitionRequest) (*emptypb.Empty, error) UnregisterFromCompetition(ctx context.Context, req *pb.UnregisterFromCompetitionRequest) (*emptypb.Empty, error) ListUserCompetitions( ctx context.Context, req *pb.ListUserCompetitionsRequest, ) (*pb.ListUserCompetitionsResponse, error) } type UserHandler struct { pb.UnimplementedUserServiceServer service UserService } func NewUserHandler(service UserService) *UserHandler { return &UserHandler{service: service} } func (h *UserHandler) GetProfile(ctx context.Context, req *pb.GetProfileRequest) (*pb.User, error) { return h.service.GetProfile(ctx, req) } func (h *UserHandler) RegisterForCompetition( ctx context.Context, req *pb.RegisterForCompetitionRequest, ) (*emptypb.Empty, error) { return h.service.RegisterForCompetition(ctx, req) } func (h *UserHandler) UnregisterFromCompetition( ctx context.Context, req *pb.UnregisterFromCompetitionRequest, ) (*emptypb.Empty, error) { return h.service.UnregisterFromCompetition(ctx, req) } func (h *UserHandler) ListUserCompetitions( ctx context.Context, req *pb.ListUserCompetitionsRequest, ) (*pb.ListUserCompetitionsResponse, error) { return h.service.ListUserCompetitions(ctx, req) }