mirror of
https://github.com/wgh136/nysoure.git
synced 2025-09-27 12:17:24 +00:00
Add edit resource functionality.
This commit is contained in:
@@ -183,6 +183,36 @@ func handleGetResourcesWithUser(c fiber.Ctx) error {
|
||||
})
|
||||
}
|
||||
|
||||
func handleUpdateResource(c fiber.Ctx) error {
|
||||
idStr := c.Params("id")
|
||||
if idStr == "" {
|
||||
return model.NewRequestError("Resource ID is required")
|
||||
}
|
||||
id, err := strconv.Atoi(idStr)
|
||||
if err != nil {
|
||||
return model.NewRequestError("Invalid resource ID")
|
||||
}
|
||||
var params service.ResourceCreateParams
|
||||
body := c.Body()
|
||||
err = json.Unmarshal(body, ¶ms)
|
||||
if err != nil {
|
||||
return model.NewRequestError("Invalid request body")
|
||||
}
|
||||
uid, ok := c.Locals("uid").(uint)
|
||||
if !ok {
|
||||
return model.NewUnAuthorizedError("You must be logged in to update a resource")
|
||||
}
|
||||
err = service.EditResource(uid, uint(id), ¶ms)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return c.Status(fiber.StatusOK).JSON(model.Response[any]{
|
||||
Success: true,
|
||||
Data: nil,
|
||||
Message: "Resource updated successfully",
|
||||
})
|
||||
}
|
||||
|
||||
func AddResourceRoutes(api fiber.Router) {
|
||||
resource := api.Group("/resource")
|
||||
{
|
||||
@@ -193,5 +223,6 @@ func AddResourceRoutes(api fiber.Router) {
|
||||
resource.Delete("/:id", handleDeleteResource)
|
||||
resource.Get("/tag/:tag", handleListResourcesWithTag)
|
||||
resource.Get("/user/:username", handleGetResourcesWithUser)
|
||||
resource.Post("/:id", handleUpdateResource)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user