GCW-SiTukang / controllers /worker_public_controller.go
Ryu2804
Deploy files from GitHub repository
f14a735
Raw
History Blame Contribute Delete
2.45 kB
package controllers
import (
"net/http"
"strconv"
"situkang/services"
"situkang/utils"
"github.com/gin-gonic/gin"
)
type WorkerPublicController interface {
ListNearby(ctx *gin.Context)
Search(ctx *gin.Context)
GetDetail(ctx *gin.Context)
GetReviews(ctx *gin.Context)
GetServices(ctx *gin.Context)
}
type workerPublicController struct {
workerService services.WorkerPublicService
}
func NewWorkerPublicController(workerService services.WorkerPublicService) WorkerPublicController {
return &workerPublicController{workerService: workerService}
}
func (wc *workerPublicController) ListNearby(ctx *gin.Context) {
lat, _ := strconv.ParseFloat(ctx.Query("latitude"), 64)
lng, _ := strconv.ParseFloat(ctx.Query("longitude"), 64)
data, err := wc.workerService.ListNearby(ctx, lat, lng)
if err != nil {
utils.ResponseFAILED(ctx, nil, err)
return
}
utils.JSONSuccess(ctx, http.StatusOK, "", data, map[string]any{
"current_page": 1,
"per_page": 10,
"total": 0,
"total_pages": 0,
})
}
func (wc *workerPublicController) Search(ctx *gin.Context) {
query := ctx.Query("q")
lat, _ := strconv.ParseFloat(ctx.Query("latitude"), 64)
lng, _ := strconv.ParseFloat(ctx.Query("longitude"), 64)
data, err := wc.workerService.Search(ctx, query, lat, lng)
if err != nil {
utils.ResponseFAILED(ctx, nil, err)
return
}
utils.JSONSuccess(ctx, http.StatusOK, "", data, map[string]any{
"current_page": 1,
"per_page": 10,
"total": 0,
"total_pages": 0,
})
}
func (wc *workerPublicController) GetDetail(ctx *gin.Context) {
workerID := ctx.Param("worker_id")
data, err := wc.workerService.GetDetail(ctx, workerID)
if err != nil {
utils.ResponseFAILED(ctx, nil, err)
return
}
utils.JSONSuccess(ctx, http.StatusOK, "", data, nil)
}
func (wc *workerPublicController) GetReviews(ctx *gin.Context) {
workerID := ctx.Param("worker_id")
data, err := wc.workerService.GetReviews(ctx, workerID)
if err != nil {
utils.ResponseFAILED(ctx, nil, err)
return
}
utils.JSONSuccess(ctx, http.StatusOK, "", data, map[string]any{
"current_page": 1,
"per_page": 10,
"total": 0,
"total_pages": 0,
})
}
func (wc *workerPublicController) GetServices(ctx *gin.Context) {
workerID := ctx.Param("worker_id")
data, err := wc.workerService.GetServices(ctx, workerID)
if err != nil {
utils.ResponseFAILED(ctx, nil, err)
return
}
utils.JSONSuccess(ctx, http.StatusOK, "", data, nil)
}