From 6e7aa21c40df7eadcff3f810e5df0e21de5a7b86 Mon Sep 17 00:00:00 2001 From: KartoffelChips <104089082+KartoffelChipss@users.noreply.github.com> Date: Thu, 2 Apr 2026 22:38:33 +0200 Subject: [PATCH] Add swagger docs to site relations --- app/handlers/site_relations.go | 183 +++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) diff --git a/app/handlers/site_relations.go b/app/handlers/site_relations.go index 02f0f46..fc72abd 100644 --- a/app/handlers/site_relations.go +++ b/app/handlers/site_relations.go @@ -56,6 +56,17 @@ func validateCustomHeaders(customHeaders *models.CustomHeaders) error { return nil } +// GetSiteForwardRules godoc +// +// @Summary List forward rules for a site +// @Description Returns all forward rules associated with the given site +// @Tags forward-rules +// @Produce json +// @Param id path string true "Site ID" +// @Success 200 {array} models.ForwardRule "List of forward rules" +// @Failure 404 {object} models.APIError "Site not found" +// @Failure 500 {object} models.APIError "Internal server error" +// @Router /sites/{id}/forward-rules [get] func (h *SiteHandler) GetSiteForwardRules(c fiber.Ctx) error { siteID := c.Params("id") @@ -74,6 +85,17 @@ func (h *SiteHandler) GetSiteForwardRules(c fiber.Ctx) error { return c.JSON(site.ForwardRules) } +// GetForwardRule godoc +// +// @Summary Get a forward rule +// @Description Returns a single forward rule by ID +// @Tags forward-rules +// @Produce json +// @Param id path string true "Forward Rule ID" +// @Success 200 {object} models.ForwardRule "Forward rule" +// @Failure 404 {object} models.APIError "Forward rule not found" +// @Failure 500 {object} models.APIError "Internal server error" +// @Router /forward-rules/{id} [get] func (h *SiteHandler) GetForwardRule(c fiber.Ctx) error { id := c.Params("id") @@ -89,6 +111,20 @@ func (h *SiteHandler) GetForwardRule(c fiber.Ctx) error { return c.JSON(rule) } +// PostForwardRule godoc +// +// @Summary Create a forward rule +// @Description Creates a new forward rule for the given site +// @Tags forward-rules +// @Accept json +// @Produce json +// @Param id path string true "Site ID" +// @Param rule body models.ForwardRule true "Forward rule to create" +// @Success 200 {object} models.ForwardRule "Created forward rule" +// @Failure 400 {object} models.APIError "Invalid request body" +// @Failure 404 {object} models.APIError "Site not found" +// @Failure 500 {object} models.APIError "Internal server error" +// @Router /sites/{id}/forward-rules [post] func (h *SiteHandler) PostForwardRule(c fiber.Ctx) error { siteID := c.Params("id") @@ -118,6 +154,20 @@ func (h *SiteHandler) PostForwardRule(c fiber.Ctx) error { return c.JSON(rule) } +// PutForwardRule godoc +// +// @Summary Update a forward rule +// @Description Replaces an existing forward rule by ID +// @Tags forward-rules +// @Accept json +// @Produce json +// @Param id path string true "Forward Rule ID" +// @Param rule body models.ForwardRule true "Updated forward rule" +// @Success 200 {object} models.ForwardRule "Updated forward rule" +// @Failure 400 {object} models.APIError "Invalid request body" +// @Failure 404 {object} models.APIError "Forward rule not found" +// @Failure 500 {object} models.APIError "Internal server error" +// @Router /forward-rules/{id} [put] func (h *SiteHandler) PutForwardRule(c fiber.Ctx) error { id := c.Params("id") @@ -154,6 +204,17 @@ func (h *SiteHandler) PutForwardRule(c fiber.Ctx) error { return c.JSON(updated) } +// DeleteForwardRule godoc +// +// @Summary Delete a forward rule +// @Description Deletes a forward rule by ID +// @Tags forward-rules +// @Produce json +// @Param id path string true "Forward Rule ID" +// @Success 204 "No content" +// @Failure 404 {object} models.APIError "Forward rule not found" +// @Failure 500 {object} models.APIError "Internal server error" +// @Router /forward-rules/{id} [delete] func (h *SiteHandler) DeleteForwardRule(c fiber.Ctx) error { id := c.Params("id") @@ -173,6 +234,17 @@ func (h *SiteHandler) DeleteForwardRule(c fiber.Ctx) error { return c.SendStatus(fiber.StatusNoContent) } +// GetSiteCustomHeaders godoc +// +// @Summary List custom header groups for a site +// @Description Returns all custom header groups associated with the given site +// @Tags custom-headers +// @Produce json +// @Param id path string true "Site ID" +// @Success 200 {array} models.CustomHeaders "List of custom header groups" +// @Failure 404 {object} models.APIError "Site not found" +// @Failure 500 {object} models.APIError "Internal server error" +// @Router /sites/{id}/custom-headers [get] func (h *SiteHandler) GetSiteCustomHeaders(c fiber.Ctx) error { siteID := c.Params("id") @@ -191,6 +263,17 @@ func (h *SiteHandler) GetSiteCustomHeaders(c fiber.Ctx) error { return c.JSON(site.CustomHeaders) } +// GetCustomHeaders godoc +// +// @Summary Get a custom header group +// @Description Returns a single custom header group by ID +// @Tags custom-headers +// @Produce json +// @Param id path string true "Custom Headers ID" +// @Success 200 {object} models.CustomHeaders "Custom header group" +// @Failure 404 {object} models.APIError "Custom headers not found" +// @Failure 500 {object} models.APIError "Internal server error" +// @Router /custom-headers/{id} [get] func (h *SiteHandler) GetCustomHeaders(c fiber.Ctx) error { id := c.Params("id") @@ -206,6 +289,20 @@ func (h *SiteHandler) GetCustomHeaders(c fiber.Ctx) error { return c.JSON(customHeaders) } +// PostCustomHeaders godoc +// +// @Summary Create a custom header group +// @Description Creates a new custom header group for the given site +// @Tags custom-headers +// @Accept json +// @Produce json +// @Param id path string true "Site ID" +// @Param customHeaders body models.CustomHeaders true "Custom header group to create" +// @Success 200 {object} models.CustomHeaders "Created custom header group" +// @Failure 400 {object} models.APIError "Invalid request body" +// @Failure 404 {object} models.APIError "Site not found" +// @Failure 500 {object} models.APIError "Internal server error" +// @Router /sites/{id}/custom-headers [post] func (h *SiteHandler) PostCustomHeaders(c fiber.Ctx) error { siteID := c.Params("id") @@ -235,6 +332,20 @@ func (h *SiteHandler) PostCustomHeaders(c fiber.Ctx) error { return c.JSON(customHeaders) } +// PutCustomHeaders godoc +// +// @Summary Update a custom header group +// @Description Replaces an existing custom header group by ID +// @Tags custom-headers +// @Accept json +// @Produce json +// @Param id path string true "Custom Headers ID" +// @Param customHeaders body models.CustomHeaders true "Updated custom header group" +// @Success 200 {object} models.CustomHeaders "Updated custom header group" +// @Failure 400 {object} models.APIError "Invalid request body" +// @Failure 404 {object} models.APIError "Custom headers not found" +// @Failure 500 {object} models.APIError "Internal server error" +// @Router /custom-headers/{id} [put] func (h *SiteHandler) PutCustomHeaders(c fiber.Ctx) error { id := c.Params("id") @@ -271,6 +382,17 @@ func (h *SiteHandler) PutCustomHeaders(c fiber.Ctx) error { return c.JSON(updated) } +// DeleteCustomHeaders godoc +// +// @Summary Delete a custom header group +// @Description Deletes a custom header group by ID +// @Tags custom-headers +// @Produce json +// @Param id path string true "Custom Headers ID" +// @Success 204 "No content" +// @Failure 404 {object} models.APIError "Custom headers not found" +// @Failure 500 {object} models.APIError "Internal server error" +// @Router /custom-headers/{id} [delete] func (h *SiteHandler) DeleteCustomHeaders(c fiber.Ctx) error { id := c.Params("id") @@ -290,6 +412,17 @@ func (h *SiteHandler) DeleteCustomHeaders(c fiber.Ctx) error { return c.SendStatus(fiber.StatusNoContent) } +// GetCustomHeaderHeaders godoc +// +// @Summary List headers in a custom header group +// @Description Returns all individual headers belonging to the given custom header group +// @Tags custom-headers +// @Produce json +// @Param id path string true "Custom Headers ID" +// @Success 200 {array} models.Header "List of headers" +// @Failure 404 {object} models.APIError "Custom headers not found" +// @Failure 500 {object} models.APIError "Internal server error" +// @Router /custom-headers/{id}/headers [get] func (h *SiteHandler) GetCustomHeaderHeaders(c fiber.Ctx) error { customHeaderID := c.Params("id") @@ -308,6 +441,17 @@ func (h *SiteHandler) GetCustomHeaderHeaders(c fiber.Ctx) error { return c.JSON(customHeaders.Headers) } +// GetHeader godoc +// +// @Summary Get a header +// @Description Returns a single header by ID +// @Tags headers +// @Produce json +// @Param id path string true "Header ID" +// @Success 200 {object} models.Header "Header" +// @Failure 404 {object} models.APIError "Header not found" +// @Failure 500 {object} models.APIError "Internal server error" +// @Router /headers/{id} [get] func (h *SiteHandler) GetHeader(c fiber.Ctx) error { id := c.Params("id") @@ -323,6 +467,20 @@ func (h *SiteHandler) GetHeader(c fiber.Ctx) error { return c.JSON(header) } +// PostHeader godoc +// +// @Summary Create a header +// @Description Creates a new header within the given custom header group +// @Tags headers +// @Accept json +// @Produce json +// @Param id path string true "Custom Headers ID" +// @Param header body models.Header true "Header to create" +// @Success 200 {object} models.Header "Created header" +// @Failure 400 {object} models.APIError "Invalid request body" +// @Failure 404 {object} models.APIError "Custom headers not found" +// @Failure 500 {object} models.APIError "Internal server error" +// @Router /custom-headers/{id}/headers [post] func (h *SiteHandler) PostHeader(c fiber.Ctx) error { customHeaderID := c.Params("id") @@ -352,6 +510,20 @@ func (h *SiteHandler) PostHeader(c fiber.Ctx) error { return c.JSON(header) } +// PutHeader godoc +// +// @Summary Update a header +// @Description Replaces an existing header by ID +// @Tags headers +// @Accept json +// @Produce json +// @Param id path string true "Header ID" +// @Param header body models.Header true "Updated header" +// @Success 200 {object} models.Header "Updated header" +// @Failure 400 {object} models.APIError "Invalid request body" +// @Failure 404 {object} models.APIError "Header not found" +// @Failure 500 {object} models.APIError "Internal server error" +// @Router /headers/{id} [put] func (h *SiteHandler) PutHeader(c fiber.Ctx) error { id := c.Params("id") @@ -388,6 +560,17 @@ func (h *SiteHandler) PutHeader(c fiber.Ctx) error { return c.JSON(updated) } +// DeleteHeader godoc +// +// @Summary Delete a header +// @Description Deletes a header by ID +// @Tags headers +// @Produce json +// @Param id path string true "Header ID" +// @Success 204 "No content" +// @Failure 404 {object} models.APIError "Header not found" +// @Failure 500 {object} models.APIError "Internal server error" +// @Router /headers/{id} [delete] func (h *SiteHandler) DeleteHeader(c fiber.Ctx) error { id := c.Params("id")