diff --git a/controller/park.go b/controller/park.go index dace3eb..607292e 100644 --- a/controller/park.go +++ b/controller/park.go @@ -29,6 +29,7 @@ func InitializeParkController(router *gin.Engine) { ParkController.Router.GET("/parks/:uid", security.ManagementAuthorize, listAllParksUnderSpecificUser) ParkController.Router.POST("/park", security.EnterpriseAuthorize, createNewPark) ParkController.Router.PUT("/park/:pid", security.EnterpriseAuthorize, modifyPark) + ParkController.Router.GET("/park/:pid", security.EnterpriseAuthorize, fetchParkDetail) } func listAllParksUnderSessionUser(c *gin.Context) { @@ -138,3 +139,28 @@ func modifyPark(c *gin.Context) { } result.Updated("指定园区资料已更新。") } + +func fetchParkDetail(c *gin.Context) { + result := response.NewResult(c) + session, exists := c.Get("session") + if !exists { + result.Error(http.StatusUnauthorized, "用户会话无效。") + return + } + userSession, ok := session.(*model.Session) + if !ok { + result.Failure(http.StatusInternalServerError, "内部缓存错误,需要重新登录。") + return + } + requestParkId := c.Param("pid") + park, err := repository.ParkRepo.FetchParkDetail(requestParkId) + if err != nil { + result.Error(http.StatusInternalServerError, err.Error()) + return + } + if userSession.Uid != park.UserId { + result.NotAccept("不能访问不属于自己的园区。") + return + } + result.Json(http.StatusOK, "已经获取到指定园区的信息。", gin.H{"park": park}) +}