Files
Gardomatic/internal/api/task_template_opt_outs.go
T
kleiax 904d14b64c
CI / test (push) Canceled after 0s
Initial commit
2026-09-12 22:22:17 +02:00

45 lines
1.4 KiB
Go

package api
import "net/http"
func (app *application) listTaskTemplateOptOutsHandler(w http.ResponseWriter, r *http.Request) {
gardenID, _ := app.readGardenIDParam(r)
plantID, err := app.readNamedIDParam(r, "id")
if err != nil {
app.notFoundResponse(w, r)
return
}
ids, err := app.models.TaskTemplateOptOuts.GetAllForPlant(gardenID, plantID)
if err != nil {
app.respondToEntityModelError(w, r, err)
return
}
if err = app.writeJSON(w, http.StatusOK, envelope{"template_ids": ids}, nil); err != nil {
app.serverErrorResponse(w, r, err)
}
}
func (app *application) setTaskTemplateOptOutHandler(w http.ResponseWriter, r *http.Request) {
app.setTaskTemplateOptOut(w, r, true)
}
func (app *application) deleteTaskTemplateOptOutHandler(w http.ResponseWriter, r *http.Request) {
app.setTaskTemplateOptOut(w, r, false)
}
func (app *application) setTaskTemplateOptOut(w http.ResponseWriter, r *http.Request, optedOut bool) {
gardenID, _ := app.readGardenIDParam(r)
plantID, err := app.readNamedIDParam(r, "id")
if err != nil {
app.notFoundResponse(w, r)
return
}
templateID, err := app.readNamedIDParam(r, "templateID")
if err != nil {
app.notFoundResponse(w, r)
return
}
if err = app.models.TaskTemplateOptOuts.Set(gardenID, plantID, templateID, optedOut); err != nil {
app.respondToEntityModelError(w, r, err)
return
}
w.WriteHeader(http.StatusNoContent)
}