package grpc import ( "context" "strconv" "git.techease.ru/Smart-search/smart-search-back/pkg/errors" pb "git.techease.ru/Smart-search/smart-search-back/pkg/pb/user" ) func (h *UserHandler) GetInfo(ctx context.Context, req *pb.GetInfoRequest) (*pb.GetInfoResponse, error) { user, err := h.userService.GetInfo(ctx, int(req.UserId)) if err != nil { return nil, errors.ToGRPCError(err, h.logger, "UserService.GetInfo") } return &pb.GetInfoResponse{ Email: user.Email, Name: user.Name, Phone: user.Phone, CompanyName: user.CompanyName, PaymentStatus: user.PaymentStatus, }, nil } func (h *UserHandler) GetBalance(ctx context.Context, req *pb.GetBalanceRequest) (*pb.GetBalanceResponse, error) { balance, err := h.userService.GetBalance(ctx, int(req.UserId)) if err != nil { return nil, errors.ToGRPCError(err, h.logger, "UserService.GetBalance") } return &pb.GetBalanceResponse{ Balance: balance, }, nil } func (h *UserHandler) GetStatistics(ctx context.Context, req *pb.GetStatisticsRequest) (*pb.GetStatisticsResponse, error) { stats, err := h.userService.GetStatistics(ctx, int(req.UserId)) if err != nil { return nil, errors.ToGRPCError(err, h.logger, "UserService.GetStatistics") } return &pb.GetStatisticsResponse{ SuppliersCount: strconv.Itoa(stats.SuppliersCount), RequestsCount: strconv.Itoa(stats.RequestsCount), CreatedTz: strconv.Itoa(stats.CreatedTZ), }, nil } func (h *UserHandler) GetBalanceStatistics(ctx context.Context, req *pb.GetBalanceStatisticsRequest) (*pb.GetBalanceStatisticsResponse, error) { stats, err := h.userService.GetBalanceStatistics(ctx, int(req.UserId)) if err != nil { return nil, errors.ToGRPCError(err, h.logger, "UserService.GetBalanceStatistics") } history := make([]*pb.WriteOffHistoryItem, 0, len(stats.WriteOffHistory)) for _, item := range stats.WriteOffHistory { history = append(history, &pb.WriteOffHistoryItem{ OperationId: item.OperationID, Data: item.Data, Amount: item.Amount, }) } return &pb.GetBalanceStatisticsResponse{ AverageCost: stats.AverageCost, WriteOffHistory: history, }, nil }