Files
smart-search-back/internal/grpc/invite_handler.go
vallyenfail d959dcca96 add service
2026-01-17 17:39:33 +03:00

46 lines
1.4 KiB
Go

package grpc
import (
"context"
"strconv"
"google.golang.org/protobuf/types/known/timestamppb"
"smart-search-back/pkg/errors"
pb "smart-search-back/pkg/pb/api/proto/invite"
)
func (h *InviteHandler) Generate(ctx context.Context, req *pb.GenerateRequest) (*pb.GenerateResponse, error) {
invite, err := h.inviteService.Generate(ctx, int(req.UserId), int(req.TtlDays), int(req.MaxUses))
if err != nil {
return nil, errors.ToGRPCError(err, h.logger, "InviteService.Generate")
}
return &pb.GenerateResponse{
Code: strconv.FormatInt(invite.Code, 10),
MaxUses: int32(invite.CanBeUsedCount),
ExpiresAt: timestamppb.New(invite.ExpiresAt),
}, nil
}
func (h *InviteHandler) GetInfo(ctx context.Context, req *pb.GetInfoRequest) (*pb.GetInfoResponse, error) {
code, err := strconv.ParseInt(req.Code, 10, 64)
if err != nil {
return nil, errors.ToGRPCError(err, h.logger, "InviteService.GetInfo")
}
invite, err := h.inviteService.GetInfo(ctx, code)
if err != nil {
return nil, errors.ToGRPCError(err, h.logger, "InviteService.GetInfo")
}
return &pb.GetInfoResponse{
Code: strconv.FormatInt(invite.Code, 10),
UserId: int64(invite.UserID),
CanBeUsedCount: int32(invite.CanBeUsedCount),
UsedCount: int32(invite.UsedCount),
ExpiresAt: timestamppb.New(invite.ExpiresAt),
IsActive: invite.IsActive,
CreatedAt: timestamppb.New(invite.CreatedAt),
}, nil
}