@@ -0,0 +1,52 @@
|
||||
package client
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// CreateGarden creates a garden owned by the authenticated user.
|
||||
func (c *Client) CreateGarden(ctx context.Context, input CreateGardenInput) (Garden, *Response, error) {
|
||||
var envelope struct {
|
||||
Garden Garden `json:"garden"`
|
||||
}
|
||||
response, err := c.do(ctx, http.MethodPost, "v1/gardens", input, &envelope)
|
||||
return envelope.Garden, response, err
|
||||
}
|
||||
|
||||
// Gardens lists gardens visible to the authenticated user.
|
||||
func (c *Client) Gardens(ctx context.Context) ([]Garden, *Response, error) {
|
||||
var envelope struct {
|
||||
Gardens []Garden `json:"gardens"`
|
||||
}
|
||||
response, err := c.do(ctx, http.MethodGet, "v1/gardens", nil, &envelope)
|
||||
return envelope.Gardens, response, err
|
||||
}
|
||||
|
||||
// Garden returns one garden visible to the authenticated user.
|
||||
func (c *Client) Garden(ctx context.Context, gardenID int) (Garden, *Response, error) {
|
||||
var envelope struct {
|
||||
Garden Garden `json:"garden"`
|
||||
}
|
||||
response, err := c.do(ctx, http.MethodGet, gardenPath(gardenID), nil, &envelope)
|
||||
return envelope.Garden, response, err
|
||||
}
|
||||
|
||||
// UpdateGarden partially updates a garden.
|
||||
func (c *Client) UpdateGarden(ctx context.Context, gardenID int, input UpdateGardenInput) (Garden, *Response, error) {
|
||||
var envelope struct {
|
||||
Garden Garden `json:"garden"`
|
||||
}
|
||||
response, err := c.do(ctx, http.MethodPatch, gardenPath(gardenID), input, &envelope)
|
||||
return envelope.Garden, response, err
|
||||
}
|
||||
|
||||
// DeleteGarden permanently deletes a garden and its dependent records.
|
||||
func (c *Client) DeleteGarden(ctx context.Context, gardenID int) (*Response, error) {
|
||||
return c.do(ctx, http.MethodDelete, gardenPath(gardenID), nil, nil)
|
||||
}
|
||||
|
||||
func gardenPath(gardenID int) string {
|
||||
return "v1/gardens/" + strconv.Itoa(gardenID)
|
||||
}
|
||||
Reference in New Issue
Block a user