34 lines
954 B
Go
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
|
|
}
|