Files
Datarush/internal/achievements/handler/grpc/handler.go
T
2025-12-19 23:12:22 +04:00

52 lines
2.0 KiB
Go

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