on the application side, get only the tenders with deadlines that have not passed
This commit is contained in:
+12
-24
@@ -1,6 +1,7 @@
|
||||
package tender
|
||||
|
||||
import (
|
||||
"time"
|
||||
"tm/pkg/logger"
|
||||
"tm/pkg/response"
|
||||
|
||||
@@ -215,6 +216,7 @@ func (h *TenderHandler) GetPublicTenders(c echo.Context) error {
|
||||
}
|
||||
|
||||
form.Status = []string{string(TenderStatusActive)}
|
||||
form.OnlyActiveDeadlines = true
|
||||
|
||||
// Get company ID and customer ID from customer context for automatic matching
|
||||
var companyID *string
|
||||
@@ -234,16 +236,6 @@ func (h *TenderHandler) GetPublicTenders(c echo.Context) error {
|
||||
return response.InternalServerError(c, "Failed to retrieve tenders")
|
||||
}
|
||||
|
||||
if result != nil {
|
||||
filtered := make([]TenderResponse, 0, len(result.Tenders))
|
||||
for _, t := range result.Tenders {
|
||||
if t.TenderDeadline != 0 {
|
||||
filtered = append(filtered, t)
|
||||
}
|
||||
}
|
||||
result.Tenders = filtered
|
||||
result.Metadata.Total = int(len(filtered))
|
||||
}
|
||||
return response.SuccessWithMeta(c, result, result.Metadata, "Tenders retrieved successfully")
|
||||
}
|
||||
|
||||
@@ -287,12 +279,8 @@ func (h *TenderHandler) RecommendTenders(c echo.Context) error {
|
||||
return response.ValidationError(c, err.Error(), "")
|
||||
}
|
||||
|
||||
result, err := h.service.Recommend(c.Request().Context(), form, response.NewPagination(c))
|
||||
if err != nil {
|
||||
return response.InternalServerError(c, "Failed to retrieve tenders")
|
||||
}
|
||||
|
||||
form.Status = []string{string(TenderStatusActive)}
|
||||
form.OnlyActiveDeadlines = true
|
||||
|
||||
var companyID *string
|
||||
if customerCompanyID, ok := c.Get("company_id").(string); ok {
|
||||
@@ -306,16 +294,11 @@ func (h *TenderHandler) RecommendTenders(c echo.Context) error {
|
||||
}
|
||||
form.CustomerID = customerID
|
||||
|
||||
if result != nil {
|
||||
filtered := make([]TenderResponse, 0, len(result.Tenders))
|
||||
for _, t := range result.Tenders {
|
||||
if t.TenderDeadline != 0 {
|
||||
filtered = append(filtered, t)
|
||||
}
|
||||
}
|
||||
result.Tenders = filtered
|
||||
result.Metadata.Total = int(len(filtered))
|
||||
result, err := h.service.Recommend(c.Request().Context(), form, response.NewPagination(c))
|
||||
if err != nil {
|
||||
return response.InternalServerError(c, "Failed to retrieve tenders")
|
||||
}
|
||||
|
||||
return response.SuccessWithMeta(c, result, result.Metadata, "Tenders retrieved successfully")
|
||||
}
|
||||
|
||||
@@ -341,6 +324,11 @@ func (h *TenderHandler) GetPublicTenderDetails(c echo.Context) error {
|
||||
return response.NotFound(c, "Tender not found")
|
||||
}
|
||||
|
||||
// Only show tenders whose deadlines have not been reached
|
||||
if tender.TenderDeadline > 0 && tender.TenderDeadline <= time.Now().Unix() {
|
||||
return response.NotFound(c, "Tender not found")
|
||||
}
|
||||
|
||||
return response.Success(c, tender, "Tender details retrieved successfully")
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user