Sam
5 years ago
3 changed files with 90 additions and 0 deletions
@ -0,0 +1,45 @@
@@ -0,0 +1,45 @@
|
||||
package keybase |
||||
|
||||
import ( |
||||
"encoding/json" |
||||
"errors" |
||||
) |
||||
|
||||
// kvAPIOut sends a JSON request to the kvstore API and returns its response.
|
||||
func kvAPIOut(k *Keybase, kv KVAPI) (KVAPI, error) { |
||||
jsonBytes, _ := json.Marshal(kv) |
||||
|
||||
cmdOut, err := k.Exec("kvstore", "api", "-m", string(jsonBytes)) |
||||
if err != nil { |
||||
return KVAPI{}, err |
||||
} |
||||
|
||||
var r KVAPI |
||||
if err := json.Unmarshal(cmdOut, &r); err != nil { |
||||
return KVAPI{}, err |
||||
} |
||||
|
||||
if r.Error != nil { |
||||
return KVAPI{}, errors.New(r.Error.Message) |
||||
} |
||||
|
||||
return r, nil |
||||
} |
||||
|
||||
// Namespaces returns all namespaces for a team
|
||||
func (kv KV) Namespaces() (KVAPI, error) { |
||||
m := KVAPI{ |
||||
Params: &kvParams{}, |
||||
} |
||||
m.Params.Options = kvOptions{ |
||||
Team: kv.Team, |
||||
} |
||||
|
||||
m.Method = "list" |
||||
|
||||
r, err := kvAPIOut(kv.keybase, m) |
||||
if err != nil { |
||||
return r, err |
||||
} |
||||
return r, nil |
||||
} |
Loading…
Reference in new issue