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) }