45 lines
1.4 KiB
Go
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)
|
|
}
|