Blame


1 26fb88e9 2022-01-12 o // TYPEs returns a slice of TYPE matching the filter expression filter.
2 6c703620 2022-01-12 o // If no PLURAL match, error wraps ErrNoMatch.
3 26fb88e9 2022-01-12 o // To fetch all LOWER, set filter to the empty string ("").
4 26fb88e9 2022-01-12 o func (c *Client) TYPEs(filter string) ([]TYPE, error) {
5 46fe962a 2022-02-02 o objects, err := c.filterObjects("/objects/PLURAL", filter)
6 26fb88e9 2022-01-12 o if err != nil {
7 64e18a8d 2022-01-21 o return nil, fmt.Errorf("get PLURAL filter %s: %w", filter, err)
8 26fb88e9 2022-01-12 o }
9 26fb88e9 2022-01-12 o var PLURAL []TYPE
10 26fb88e9 2022-01-12 o for _, o := range objects {
11 26fb88e9 2022-01-12 o v, ok := o.(TYPE)
12 26fb88e9 2022-01-12 o if !ok {
13 64e18a8d 2022-01-21 o return nil, fmt.Errorf("get PLURAL filter %s: %T in response", filter, v)
14 26fb88e9 2022-01-12 o }
15 26fb88e9 2022-01-12 o PLURAL = append(PLURAL, v)
16 26fb88e9 2022-01-12 o }
17 26fb88e9 2022-01-12 o return PLURAL, nil
18 26fb88e9 2022-01-12 o }
19 26fb88e9 2022-01-12 o
20 26fb88e9 2022-01-12 o // LookupTYPE returns the TYPE identified by name. If no TYPE is found, error
21 26fb88e9 2022-01-12 o // wraps ErrNotExist.
22 26fb88e9 2022-01-12 o func (c *Client) LookupTYPE(name string) (TYPE, error) {
23 410b3745 2023-03-11 o obj, err := c.lookupObject("/objects/PLURAL/" + url.PathEscape(name))
24 26fb88e9 2022-01-12 o if err != nil {
25 26fb88e9 2022-01-12 o return TYPE{}, fmt.Errorf("lookup LOWER %s: %w", name, err)
26 26fb88e9 2022-01-12 o }
27 26fb88e9 2022-01-12 o v, ok := obj.(TYPE)
28 26fb88e9 2022-01-12 o if !ok {
29 26fb88e9 2022-01-12 o return TYPE{}, fmt.Errorf("lookup LOWER %s: result type %T is not TYPE", name, v)
30 26fb88e9 2022-01-12 o }
31 26fb88e9 2022-01-12 o return v, nil
32 26fb88e9 2022-01-12 o }
33 26fb88e9 2022-01-12 o
34 26fb88e9 2022-01-12 o // CreateTYPE creates LOWER. Some fields of LOWER must be set for successful
35 26fb88e9 2022-01-12 o // creation; see the type definition of TYPE for details.
36 26fb88e9 2022-01-12 o func (c *Client) CreateTYPE(LOWER TYPE) error {
37 46fe962a 2022-02-02 o if err := c.createObject(LOWER); err != nil {
38 26fb88e9 2022-01-12 o return fmt.Errorf("create LOWER %s: %w", LOWER.Name, err)
39 26fb88e9 2022-01-12 o }
40 26fb88e9 2022-01-12 o return nil
41 26fb88e9 2022-01-12 o }
42 26fb88e9 2022-01-12 o
43 02a1a100 2022-01-18 o // DeleteTYPE deletes the TYPE identified by name. If cascade is true, objects
44 02a1a100 2022-01-18 o // depending on the TYPE are also deleted. If no TYPE is found, error wraps
45 02a1a100 2022-01-18 o // ErrNotExist.
46 02a1a100 2022-01-18 o func (c *Client) DeleteTYPE(name string, cascade bool) error {
47 410b3745 2023-03-11 o if err := c.deleteObject("/objects/PLURAL/"+url.PathEscape(name), cascade); err != nil {
48 26fb88e9 2022-01-12 o return fmt.Errorf("delete LOWER %s: %w", name, err)
49 26fb88e9 2022-01-12 o }
50 26fb88e9 2022-01-12 o return nil
51 26fb88e9 2022-01-12 o }