Implement Feedback Management System with CRUD Operations and API Enhancements
- Introduced a new feedback management system, including the creation of feedback entities, services, and repositories. - Implemented CRUD operations for feedback, allowing users to submit likes and dislikes on tenders. - Developed administrative endpoints for listing and retrieving feedback with comprehensive filtering options. - Enhanced public API to allow users to view feedback related to tenders. - Updated Swagger documentation to reflect new feedback endpoints and their functionalities. - Removed obsolete configuration file `config.yaml` as part of the transition to a modular configuration system. - Ensured adherence to Clean Architecture principles throughout the implementation.
This commit is contained in:
@@ -3,13 +3,14 @@ package router
|
||||
import (
|
||||
"tm/internal/company"
|
||||
"tm/internal/customer"
|
||||
"tm/internal/feedback"
|
||||
"tm/internal/tender"
|
||||
"tm/internal/user"
|
||||
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
func RegisterAdminRoutes(e *echo.Echo, userHandler *user.Handler, companyHandler *company.Handler, customerHandler *customer.Handler, tenderHandler *tender.TenderHandler) {
|
||||
func RegisterAdminRoutes(e *echo.Echo, userHandler *user.Handler, companyHandler *company.Handler, customerHandler *customer.Handler, tenderHandler *tender.TenderHandler, feedbackHandler *feedback.Handler) {
|
||||
adminV1 := e.Group("/admin/v1")
|
||||
|
||||
// Admin Users Routes
|
||||
@@ -111,9 +112,18 @@ func RegisterAdminRoutes(e *echo.Echo, userHandler *user.Handler, companyHandler
|
||||
scrapingGP.GET("/jobs/:id", tenderHandler.GetScrapingJob)
|
||||
scrapingGP.POST("/jobs/:id/cancel", tenderHandler.CancelScrapingJob)
|
||||
}
|
||||
|
||||
// Admin Feedback Routes
|
||||
feedbackGP := adminV1.Group("/feedback")
|
||||
{
|
||||
feedbackGP.Use(userHandler.AuthMiddleware())
|
||||
feedbackGP.GET("", feedbackHandler.ListFeedback)
|
||||
feedbackGP.GET("/:id", feedbackHandler.GetFeedback)
|
||||
feedbackGP.DELETE("/:id", feedbackHandler.DeleteFeedback)
|
||||
}
|
||||
}
|
||||
|
||||
func RegisterPublicRoutes(e *echo.Echo, customerHandler *customer.Handler, tenderHandler *tender.TenderHandler) {
|
||||
func RegisterPublicRoutes(e *echo.Echo, customerHandler *customer.Handler, tenderHandler *tender.TenderHandler, feedbackHandler *feedback.Handler) {
|
||||
v1 := e.Group("/api/v1")
|
||||
|
||||
customerGP := v1.Group("/profile")
|
||||
@@ -134,4 +144,13 @@ func RegisterPublicRoutes(e *echo.Echo, customerHandler *customer.Handler, tende
|
||||
tendersGP.GET("", tenderHandler.GetPublicTenders)
|
||||
tendersGP.GET("/:id", tenderHandler.GetPublicTenderDetails)
|
||||
}
|
||||
|
||||
// Public Feedback Routes
|
||||
feedbackGP := v1.Group("/feedback")
|
||||
{
|
||||
feedbackGP.Use(customerHandler.AuthMiddleware())
|
||||
feedbackGP.POST("", feedbackHandler.ToggleFeedback)
|
||||
feedbackGP.GET("", feedbackHandler.PublicListFeedback)
|
||||
feedbackGP.GET("/:id", feedbackHandler.PublicGetFeedback)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user