Files
smart-search-back/internal/grpc/user_handler.go
vallyenfail 6cb3063a1d
Some checks failed
Deploy Smart Search Backend Test / deploy (push) Failing after 28s
add service
2026-01-19 19:29:53 +03:00

70 lines
2.1 KiB
Go

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
}