48 lines
909 B
Go
48 lines
909 B
Go
|
package client
|
||
|
|
||
|
import (
|
||
|
_ "io"
|
||
|
"fmt"
|
||
|
"strings"
|
||
|
_ "encoding/json"
|
||
|
"net/http"
|
||
|
)
|
||
|
|
||
|
type TaggerApi struct {
|
||
|
client *http.Client
|
||
|
endpoint string
|
||
|
}
|
||
|
|
||
|
func New(endpointUrl string) *TaggerApi {
|
||
|
return &TaggerApi{
|
||
|
client: &http.Client{},
|
||
|
endpoint: endpointUrl,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (t *TaggerApi) assertReceiver() {
|
||
|
if t == nil {
|
||
|
panic("Method can't be called on nil receiver")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (t *TaggerApi) Ping() error {
|
||
|
t.assertReceiver()
|
||
|
resp, e := t.client.Get(fmt.Sprintf("%s/ping", t.endpoint))
|
||
|
defer resp.Body.Close()
|
||
|
|
||
|
return e
|
||
|
}
|
||
|
|
||
|
func (t *TaggerApi) AddTagResource(tagName string, resourceUrl string) error {
|
||
|
t.assertReceiver()
|
||
|
|
||
|
jsonReader := strings.NewReader(fmt.Sprintf(`{ "resource": "%s" }`, resourceUrl))
|
||
|
|
||
|
resp, e := t.client.Post(fmt.Sprintf("%s/tags/%s", t.endpoint, tagName), "application/json", jsonReader)
|
||
|
if e == nil {
|
||
|
defer resp.Body.Close()
|
||
|
}
|
||
|
return e
|
||
|
}
|