Refactor Tender Management API Endpoints and Update Documentation

- Renamed and restructured tender-related API endpoints for improved clarity and consistency, including changing the route from `/admin/tenders` to `/admin/v1/companies` and updating the associated methods.
- Introduced a new SearchForm structure for listing tenders with advanced filtering capabilities, enhancing the API's search functionality.
- Updated the service and repository layers to align with the new endpoint structure, ensuring proper handling of tender data.
- Enhanced Swagger and YAML documentation to reflect the changes in endpoint structure, including detailed descriptions and examples for the new search functionality.
- Improved error handling and response structures to provide clearer feedback to API consumers, ensuring a more robust and user-friendly experience.
This commit is contained in:
n.nakhostin
2025-09-08 14:20:50 +03:30
parent 3b265e567d
commit 3911180486
11 changed files with 1216 additions and 1382 deletions
+3 -3
View File
@@ -20,12 +20,12 @@ type FeedbackService interface {
// feedbackService implements FeedbackService interface
type feedbackService struct {
feedbackRepo Repository
tenderService tender.TenderService
tenderService tender.Service
logger logger.Logger
}
// NewFeedbackService creates a new feedback service
func NewFeedbackService(feedbackRepo Repository, tenderService tender.TenderService, logger logger.Logger) FeedbackService {
func NewFeedbackService(feedbackRepo Repository, tenderService tender.Service, logger logger.Logger) FeedbackService {
return &feedbackService{
feedbackRepo: feedbackRepo,
tenderService: tenderService,
@@ -133,7 +133,7 @@ func (s *feedbackService) ListFeedback(ctx context.Context, criteria FeedbackSea
result := make([]*FeedbackWithTenderResponse, len(feedbacks))
for i, feedback := range feedbacks {
tender, err := s.tenderService.GetTenderByID(ctx, feedback.TenderID)
tender, err := s.tenderService.GetByID(ctx, feedback.TenderID)
if err != nil {
s.logger.Error("Failed to get tender", map[string]interface{}{
"tender_id": feedback.TenderID,