Add UserLookup()
This commit is contained in:
21
keybase.go
21
keybase.go
@ -2,7 +2,9 @@ package keybase
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Possible MemberTypes
|
// Possible MemberTypes
|
||||||
@ -115,3 +117,22 @@ func (k *Keybase) version() string {
|
|||||||
|
|
||||||
return string(cmdOut)
|
return string(cmdOut)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UserLookup pulls information about users.
|
||||||
|
// The following fields are currently returned: basics, profile, proofs_summary
|
||||||
|
// See https://keybase.io/docs/api/1.0/call/user/lookup for more info
|
||||||
|
func (k *Keybase) UserLookup(users ...string) (UserAPI, error) {
|
||||||
|
var fields = []string{"basics", "profile", "proofs_summary"}
|
||||||
|
|
||||||
|
cmdOut, err := k.Exec("apicall", "--arg", fmt.Sprintf("usernames=%s", strings.Join(users, ",")), "--arg", fmt.Sprintf("fields=%s", strings.Join(fields, ",")), "user/lookup")
|
||||||
|
if err != nil {
|
||||||
|
return UserAPI{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var r UserAPI
|
||||||
|
if err := json.Unmarshal(cmdOut, &r); err != nil {
|
||||||
|
return UserAPI{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return r, nil
|
||||||
|
}
|
||||||
|
|||||||
59
types.go
59
types.go
@ -597,6 +597,64 @@ type tResult struct {
|
|||||||
Showcase showcase `json:"showcase"`
|
Showcase showcase `json:"showcase"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UserAPI holds information received to the userlookup api
|
||||||
|
type UserAPI struct {
|
||||||
|
Status uStatus `json:"status"`
|
||||||
|
Them []them `json:"them"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type uStatus struct {
|
||||||
|
Code int `json:"code"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type basics struct {
|
||||||
|
Ctime int `json:"ctime"`
|
||||||
|
EldestSeqno int `json:"eldest_seqno"`
|
||||||
|
IDVersion int `json:"id_version"`
|
||||||
|
LastIDChange int `json:"last_id_change"`
|
||||||
|
Mtime int `json:"mtime"`
|
||||||
|
PassphraseGeneration int `json:"passphrase_generation"`
|
||||||
|
RandomPw bool `json:"random_pw"`
|
||||||
|
Salt string `json:"salt"`
|
||||||
|
Status int `json:"status"`
|
||||||
|
TrackVersion int `json:"track_version"`
|
||||||
|
Username string `json:"username"`
|
||||||
|
UsernameCased string `json:"username_cased"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type profile struct {
|
||||||
|
Bio string `json:"bio"`
|
||||||
|
FullName string `json:"full_name"`
|
||||||
|
Location string `json:"location"`
|
||||||
|
Mtime int `json:"mtime"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type proof struct {
|
||||||
|
HumanURL string `json:"human_url"`
|
||||||
|
Nametag string `json:"nametag"`
|
||||||
|
PresentationGroup string `json:"presentation_group"`
|
||||||
|
PresentationTag string `json:"presentation_tag"`
|
||||||
|
ProofID string `json:"proof_id"`
|
||||||
|
ProofType string `json:"proof_type"`
|
||||||
|
ProofURL string `json:"proof_url"`
|
||||||
|
ServiceURL string `json:"service_url"`
|
||||||
|
SigID string `json:"sig_id"`
|
||||||
|
State int `json:"state"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type proofsSummary struct {
|
||||||
|
All []proof `json:"all"`
|
||||||
|
HasWeb bool `json:"has_web"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type them struct {
|
||||||
|
Basics basics `json:"basics,omitempty"`
|
||||||
|
ID string `json:"id"`
|
||||||
|
Profile profile `json:"profile,omitempty"`
|
||||||
|
ProofsSummary proofsSummary `json:"proofs_summary"`
|
||||||
|
}
|
||||||
|
|
||||||
// Keybase holds basic information about the local Keybase executable
|
// Keybase holds basic information about the local Keybase executable
|
||||||
type Keybase struct {
|
type Keybase struct {
|
||||||
Path string
|
Path string
|
||||||
@ -673,6 +731,7 @@ type keybase interface {
|
|||||||
Run(handler func(ChatAPI), options ...RunOptions)
|
Run(handler func(ChatAPI), options ...RunOptions)
|
||||||
status() status
|
status() status
|
||||||
version() string
|
version() string
|
||||||
|
UserLookup(users ...string) (UserAPI, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type status struct {
|
type status struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user