30 lines
803 B
Go
30 lines
803 B
Go
package grpc
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/google/uuid"
|
|
"smart-search-back/pkg/errors"
|
|
pb "smart-search-back/pkg/pb/api/proto/supplier"
|
|
)
|
|
|
|
func (h *SupplierHandler) ExportExcel(ctx context.Context, req *pb.ExportExcelRequest) (*pb.ExportExcelResponse, error) {
|
|
requestID, err := uuid.Parse(req.RequestId)
|
|
if err != nil {
|
|
return nil, errors.ToGRPCError(err, h.logger, "SupplierService.ExportExcel")
|
|
}
|
|
|
|
fileData, err := h.supplierService.ExportExcel(ctx, requestID)
|
|
if err != nil {
|
|
return nil, errors.ToGRPCError(err, h.logger, "SupplierService.ExportExcel")
|
|
}
|
|
|
|
fileName := "suppliers_" + requestID.String() + ".xlsx"
|
|
|
|
return &pb.ExportExcelResponse{
|
|
FileData: fileData,
|
|
FileName: fileName,
|
|
MimeType: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
}, nil
|
|
}
|