Add frontend #1

Merged
KartoffelChipss merged 50 commits from feature/frontend into main 2026-05-06 20:16:59 +02:00
Showing only changes of commit 6e7aa21c40 - Show all commits
+183
View File
@@ -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")