Blame


1 2c4d16ae 2021-12-23 o package icinga
2 2c4d16ae 2021-12-23 o
3 2c4d16ae 2021-12-23 o import (
4 2c4d16ae 2021-12-23 o "bytes"
5 2c4d16ae 2021-12-23 o "encoding/json"
6 2c4d16ae 2021-12-23 o "fmt"
7 2c4d16ae 2021-12-23 o "net/http"
8 2c4d16ae 2021-12-23 o )
9 2c4d16ae 2021-12-23 o
10 2c4d16ae 2021-12-23 o type User struct {
11 2c4d16ae 2021-12-23 o Name string
12 2c4d16ae 2021-12-23 o Type string
13 2c4d16ae 2021-12-23 o Attrs struct {
14 2c4d16ae 2021-12-23 o Email string
15 2c4d16ae 2021-12-23 o }
16 2c4d16ae 2021-12-23 o }
17 2c4d16ae 2021-12-23 o
18 2c4d16ae 2021-12-23 o var testUser = User{
19 2c4d16ae 2021-12-23 o Name: "Olly",
20 2c4d16ae 2021-12-23 o Type: "User",
21 2c4d16ae 2021-12-23 o Attrs: struct {
22 2c4d16ae 2021-12-23 o Email string
23 2c4d16ae 2021-12-23 o }{Email: "olly@example.com"},
24 2c4d16ae 2021-12-23 o }
25 2c4d16ae 2021-12-23 o
26 2c4d16ae 2021-12-23 o func (c *Client) Users() ([]User, error) {
27 2c4d16ae 2021-12-23 o resp, err := c.get("/objects/users")
28 2c4d16ae 2021-12-23 o if err != nil {
29 2c4d16ae 2021-12-23 o return nil, err
30 2c4d16ae 2021-12-23 o }
31 2c4d16ae 2021-12-23 o if resp.StatusCode != http.StatusOK {
32 2c4d16ae 2021-12-23 o return nil, fmt.Errorf("get /objects/users: status %s", resp.Status)
33 2c4d16ae 2021-12-23 o }
34 2c4d16ae 2021-12-23 o return []User{testUser}, nil
35 2c4d16ae 2021-12-23 o }
36 2c4d16ae 2021-12-23 o
37 2c4d16ae 2021-12-23 o func (c *Client) CreateUser(name, email string) error {
38 2c4d16ae 2021-12-23 o u := User{
39 2c4d16ae 2021-12-23 o Name: name,
40 2c4d16ae 2021-12-23 o Type: "User",
41 2c4d16ae 2021-12-23 o Attrs: struct {
42 2c4d16ae 2021-12-23 o Email string
43 2c4d16ae 2021-12-23 o }{email},
44 2c4d16ae 2021-12-23 o }
45 2c4d16ae 2021-12-23 o buf := &bytes.Buffer{}
46 2c4d16ae 2021-12-23 o if err := json.NewEncoder(buf).Encode(u); err != nil {
47 2c4d16ae 2021-12-23 o return err
48 2c4d16ae 2021-12-23 o }
49 2c4d16ae 2021-12-23 o _, err := c.put("/objects/users/"+name, buf)
50 2c4d16ae 2021-12-23 o return err
51 2c4d16ae 2021-12-23 o }