package grpc import ( "context" pb "datarush/pkg/api/achievements" "google.golang.org/protobuf/types/known/emptypb" ) type AchievementService interface { CreateAchievement(ctx context.Context, req *pb.Achievement) (*pb.Achievement, error) GetAchievement(ctx context.Context, req *pb.GetAchievementRequest) (*pb.Achievement, error) EditAchievement(ctx context.Context, req *pb.Achievement) (*pb.Achievement, error) DeleteAchievement(ctx context.Context, req *pb.DeleteAchievementRequest) (*emptypb.Empty, error) ListAchievements(ctx context.Context, req *emptypb.Empty) (*pb.ListAchievementsResponse, error) GetUserAchievements(ctx context.Context, req *pb.GetUserAchievementsRequest) (*pb.GetUserAchievementsResponse, error) } type AchievementHandler struct { pb.UnimplementedAchievementsServiceServer service AchievementService } func NewAchievementHandler(service AchievementService) *AchievementHandler { return &AchievementHandler{service: service} } func (h *AchievementHandler) CreateAchievement(ctx context.Context, req *pb.Achievement) (*pb.Achievement, error) { return h.service.CreateAchievement(ctx, req) } func (h *AchievementHandler) GetAchievement(ctx context.Context, req *pb.GetAchievementRequest) (*pb.Achievement, error) { return h.service.GetAchievement(ctx, req) } func (h *AchievementHandler) EditAchievement(ctx context.Context, req *pb.Achievement) (*pb.Achievement, error) { return h.service.EditAchievement(ctx, req) } func (h *AchievementHandler) DeleteAchievement(ctx context.Context, req *pb.DeleteAchievementRequest) (*emptypb.Empty, error) { return h.service.DeleteAchievement(ctx, req) } func (h *AchievementHandler) ListAchievements(ctx context.Context, req *emptypb.Empty) (*pb.ListAchievementsResponse, error) { return h.service.ListAchievements(ctx, req) } func (h *AchievementHandler) GetUserAchievements(ctx context.Context, req *pb.GetUserAchievementsRequest) (*pb.GetUserAchievementsResponse, error) { return h.service.GetUserAchievements(ctx, req) }