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
+9 -9
View File
@@ -51,12 +51,12 @@ type Service interface {
// tenderApprovalService implements the Service interface
type tenderApprovalService struct {
repository Repository
tenderService tender.TenderService
tenderService tender.Service
logger logger.Logger
}
// NewTenderApprovalService creates a new tender approval service
func NewTenderApprovalService(repository Repository, tenderService tender.TenderService, logger logger.Logger) Service {
func NewTenderApprovalService(repository Repository, tenderService tender.Service, logger logger.Logger) Service {
return &tenderApprovalService{
repository: repository,
tenderService: tenderService,
@@ -134,7 +134,7 @@ func (s *tenderApprovalService) GetTenderApprovalByIDWithTender(ctx context.Cont
}
// Get tender details
tenderResponse, err := s.tenderService.GetTenderByID(ctx, tenderApproval.TenderID)
tenderResponse, err := s.tenderService.GetByID(ctx, tenderApproval.TenderID)
if err != nil {
s.logger.Warn("Failed to get tender details", map[string]interface{}{
"tender_id": tenderApproval.TenderID,
@@ -205,7 +205,7 @@ func (s *tenderApprovalService) GetTenderApprovalByTenderAndCompanyWithTender(ct
}
// Get tender details
tenderResponse, err := s.tenderService.GetTenderByID(ctx, tenderApproval.TenderID)
tenderResponse, err := s.tenderService.GetByID(ctx, tenderApproval.TenderID)
if err != nil {
s.logger.Warn("Failed to get tender details", map[string]interface{}{
"tender_id": tenderApproval.TenderID,
@@ -299,7 +299,7 @@ func (s *tenderApprovalService) GetTenderApprovalsByCompanyIDWithTender(ctx cont
}
for _, approval := range tenderApprovals {
// Get tender details
tenderResponse, err := s.tenderService.GetTenderByID(ctx, approval.TenderID)
tenderResponse, err := s.tenderService.GetByID(ctx, approval.TenderID)
if err != nil {
s.logger.Warn("Failed to get tender details", map[string]interface{}{
"tender_id": approval.TenderID,
@@ -444,7 +444,7 @@ func (s *tenderApprovalService) UpdateTenderApprovalWithTender(ctx context.Conte
}
// Get tender details
tenderResponse, err := s.tenderService.GetTenderByID(ctx, tenderApproval.TenderID)
tenderResponse, err := s.tenderService.GetByID(ctx, tenderApproval.TenderID)
if err != nil {
s.logger.Warn("Failed to get tender details", map[string]interface{}{
"tender_id": tenderApproval.TenderID,
@@ -784,7 +784,7 @@ func (s *tenderApprovalService) GetTenderApprovalsByStatusWithTender(ctx context
var responses []*TenderApprovalWithTenderResponse
for _, approval := range tenderApprovals {
// Get tender details
tenderResponse, err := s.tenderService.GetTenderByID(ctx, approval.TenderID)
tenderResponse, err := s.tenderService.GetByID(ctx, approval.TenderID)
if err != nil {
s.logger.Warn("Failed to get tender details", map[string]interface{}{
"tender_id": approval.TenderID,
@@ -832,7 +832,7 @@ func (s *tenderApprovalService) GetTenderApprovalsBySubmissionModeWithTender(ctx
var responses []*TenderApprovalWithTenderResponse
for _, approval := range tenderApprovals {
// Get tender details
tenderResponse, err := s.tenderService.GetTenderByID(ctx, approval.TenderID)
tenderResponse, err := s.tenderService.GetByID(ctx, approval.TenderID)
if err != nil {
s.logger.Warn("Failed to get tender details", map[string]interface{}{
"tender_id": approval.TenderID,
@@ -930,7 +930,7 @@ func (s *tenderApprovalService) ListTenderApprovalsWithTender(ctx context.Contex
var responses []*TenderApprovalWithTenderResponse
for _, approval := range tenderApprovals {
// Get tender details
tenderResponse, err := s.tenderService.GetTenderByID(ctx, approval.TenderID)
tenderResponse, err := s.tenderService.GetByID(ctx, approval.TenderID)
if err != nil {
s.logger.Warn("Failed to get tender details", map[string]interface{}{
"tender_id": approval.TenderID,