70 lines
2.1 KiB
Go
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
|
|
}
|