hyapp-server/services/activity-service/internal/client/invite_attribution_source.go
2026-06-11 17:11:59 +08:00

34 lines
954 B
Go

package client
import (
"context"
"google.golang.org/grpc"
userv1 "hyapp.local/api/proto/user/v1"
"hyapp/pkg/appcode"
)
// GRPCInviteAttributionSource 从 user-service 读取被邀请用户的邀请归因。
type GRPCInviteAttributionSource struct {
client userv1.UserServiceClient
}
func NewGRPCInviteAttributionSource(conn *grpc.ClientConn) *GRPCInviteAttributionSource {
return &GRPCInviteAttributionSource{client: userv1.NewUserServiceClient(conn)}
}
func (s *GRPCInviteAttributionSource) GetInviteAttribution(ctx context.Context, invitedUserID int64) (*userv1.InviteAttribution, error) {
resp, err := s.client.GetInviteAttribution(ctx, &userv1.GetInviteAttributionRequest{
Meta: &userv1.RequestMeta{
RequestId: "invite-activity-attribution",
Caller: "activity-service",
AppCode: appcode.FromContext(ctx),
},
InvitedUserId: invitedUserID,
})
if err != nil {
return nil, err
}
return resp.GetAttribution(), nil
}