47 lines
1.9 KiB
Go
47 lines
1.9 KiB
Go
package client
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
"strconv"
|
|
)
|
|
|
|
// TaskPriorities lists active priority choices for task forms.
|
|
func (c *Client) TaskPriorities(ctx context.Context) ([]TaskPriority, *Response, error) {
|
|
return c.taskPriorities(ctx, "v1/task-priorities")
|
|
}
|
|
|
|
// AdminTaskPriorities lists all priority catalogue entries.
|
|
func (c *Client) AdminTaskPriorities(ctx context.Context) ([]TaskPriority, *Response, error) {
|
|
return c.taskPriorities(ctx, "v1/admin/task-priorities")
|
|
}
|
|
func (c *Client) taskPriorities(ctx context.Context, path string) ([]TaskPriority, *Response, error) {
|
|
var envelope struct {
|
|
Priorities []TaskPriority `json:"priorities"`
|
|
}
|
|
response, err := c.do(ctx, http.MethodGet, path, nil, &envelope)
|
|
return envelope.Priorities, response, err
|
|
}
|
|
|
|
// CreateAdminTaskPriority adds an application-wide priority choice.
|
|
func (c *Client) CreateAdminTaskPriority(ctx context.Context, input TaskPriorityInput) (TaskPriority, *Response, error) {
|
|
return c.writeTaskPriority(ctx, http.MethodPost, "v1/admin/task-priorities", input)
|
|
}
|
|
|
|
// UpdateAdminTaskPriority changes an application-wide priority choice.
|
|
func (c *Client) UpdateAdminTaskPriority(ctx context.Context, id int, input TaskPriorityInput) (TaskPriority, *Response, error) {
|
|
return c.writeTaskPriority(ctx, http.MethodPatch, "v1/admin/task-priorities/"+strconv.Itoa(id), input)
|
|
}
|
|
|
|
// DeleteAdminTaskPriority removes an unused priority choice.
|
|
func (c *Client) DeleteAdminTaskPriority(ctx context.Context, id int) (*Response, error) {
|
|
return c.do(ctx, http.MethodDelete, "v1/admin/task-priorities/"+strconv.Itoa(id), nil, nil)
|
|
}
|
|
func (c *Client) writeTaskPriority(ctx context.Context, method, path string, input TaskPriorityInput) (TaskPriority, *Response, error) {
|
|
var envelope struct {
|
|
Priority TaskPriority `json:"priority"`
|
|
}
|
|
response, err := c.do(ctx, method, path, input, &envelope)
|
|
return envelope.Priority, response, err
|
|
}
|