@@ -0,0 +1,53 @@
|
||||
package client
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// CreateSpeciesTaskTemplate adds an automatic task rule to a species.
|
||||
func (c *Client) CreateSpeciesTaskTemplate(ctx context.Context, gardenID, speciesID int, input SpeciesTaskTemplateInput) (SpeciesTaskTemplate, *Response, error) {
|
||||
return c.writeSpeciesTaskTemplate(ctx, http.MethodPost, speciesTaskTemplateCollectionPath(gardenID, speciesID), input)
|
||||
}
|
||||
|
||||
// SpeciesTaskTemplates lists task-generation rules for a species.
|
||||
func (c *Client) SpeciesTaskTemplates(ctx context.Context, gardenID, speciesID int) ([]SpeciesTaskTemplate, *Response, error) {
|
||||
var envelope struct {
|
||||
TaskTemplates []SpeciesTaskTemplate `json:"task_templates"`
|
||||
}
|
||||
response, err := c.do(ctx, http.MethodGet, speciesTaskTemplateCollectionPath(gardenID, speciesID), nil, &envelope)
|
||||
return envelope.TaskTemplates, response, err
|
||||
}
|
||||
|
||||
// SpeciesTaskTemplate returns one task-generation rule within its species.
|
||||
func (c *Client) SpeciesTaskTemplate(ctx context.Context, gardenID, speciesID, templateID int) (SpeciesTaskTemplate, *Response, error) {
|
||||
var envelope struct {
|
||||
TaskTemplate SpeciesTaskTemplate `json:"task_template"`
|
||||
}
|
||||
response, err := c.do(ctx, http.MethodGet, speciesTaskTemplatePath(gardenID, speciesID, templateID), nil, &envelope)
|
||||
return envelope.TaskTemplate, response, err
|
||||
}
|
||||
|
||||
// UpdateSpeciesTaskTemplate changes a task-generation rule.
|
||||
func (c *Client) UpdateSpeciesTaskTemplate(ctx context.Context, gardenID, speciesID, templateID int, input SpeciesTaskTemplateInput) (SpeciesTaskTemplate, *Response, error) {
|
||||
return c.writeSpeciesTaskTemplate(ctx, http.MethodPatch, speciesTaskTemplatePath(gardenID, speciesID, templateID), input)
|
||||
}
|
||||
|
||||
// DeleteSpeciesTaskTemplate removes a task-generation rule.
|
||||
func (c *Client) DeleteSpeciesTaskTemplate(ctx context.Context, gardenID, speciesID, templateID int) (*Response, error) {
|
||||
return c.do(ctx, http.MethodDelete, speciesTaskTemplatePath(gardenID, speciesID, templateID), nil, nil)
|
||||
}
|
||||
func (c *Client) writeSpeciesTaskTemplate(ctx context.Context, method, path string, input SpeciesTaskTemplateInput) (SpeciesTaskTemplate, *Response, error) {
|
||||
var envelope struct {
|
||||
TaskTemplate SpeciesTaskTemplate `json:"task_template"`
|
||||
}
|
||||
response, err := c.do(ctx, method, path, input, &envelope)
|
||||
return envelope.TaskTemplate, response, err
|
||||
}
|
||||
func speciesTaskTemplateCollectionPath(gardenID, speciesID int) string {
|
||||
return speciesPath(gardenID, speciesID) + "/task-templates"
|
||||
}
|
||||
func speciesTaskTemplatePath(gardenID, speciesID, templateID int) string {
|
||||
return speciesTaskTemplateCollectionPath(gardenID, speciesID) + "/" + strconv.Itoa(templateID)
|
||||
}
|
||||
Reference in New Issue
Block a user