forked from octokit/go-octokit
/
root.go
74 lines (64 loc) · 2.72 KB
/
root.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package octokit
import (
"github.com/lostisland/go-sawyer/hypermedia"
"net/url"
)
var (
RootURL = Hyperlink("/")
)
// Create a RooService with the base Hyperlink
// If no Hyperlink is passed in, it will use RootHyperlink.
func (c *Client) Root(link *Hyperlink) (root *RootService, err error) {
if link == nil {
link = &RootURL
}
url, err := link.Expand(nil)
if err != nil {
return
}
root = &RootService{client: c, URL: url}
return
}
type RootService struct {
client *Client
URL *url.URL
}
func (r *RootService) Get() (root *Root, result *Result) {
result = r.client.Get(r.URL, &root)
if root != nil {
// Cached hyperlinks
root.PullsURL = PullRequestsURL
}
return
}
type Root struct {
*hypermedia.HALResource
UserSearchURL Hyperlink `json:"user_search_url,omitempty"`
UserRepositoriesURL Hyperlink `json:"user_repositories_url,omitempty"`
UserOrganizationsURL Hyperlink `json:"user_organizations_url,omitempty"`
UserURL Hyperlink `json:"user_url,omitempty"`
TeamURL Hyperlink `json:"team_url,omitempty"`
StarredGistsURL Hyperlink `json:"starred_gists_url,omitempty"`
StarredURL Hyperlink `json:"starred_url,omitempty"`
CurrentUserRepositoriesURL Hyperlink `json:"current_user_repositories_url,omitempty"`
RepositorySearchURL Hyperlink `json:"repository_search_url,omitempty"`
RepositoryURL Hyperlink `json:"repository_url,omitempty"`
RateLimitURL Hyperlink `json:"rate_limit_url,omitempty"`
GistsURL Hyperlink `json:"gists_url,omitempty"`
FollowingURL Hyperlink `json:"following_url,omitempty"`
FeedsURL Hyperlink `json:"feeds_url,omitempty"`
EventsURL Hyperlink `json:"events_url,omitempty"`
EmojisURL Hyperlink `json:"emojis_url,omitempty"`
EmailsURL Hyperlink `json:"emails_url,omitempty"`
AuthorizationsURL Hyperlink `json:"authorizations_url,omitempty"`
CurrentUserURL Hyperlink `json:"current_user_url,omitempty"`
HubURL Hyperlink `json:"hub_url,omitempty"`
IssueSearchURL Hyperlink `json:"issue_search_url,omitempty"`
IssuesURL Hyperlink `json:"issues_url,omitempty"`
KeysURL Hyperlink `json:"keys_url,omitempty"`
NotificationsURL Hyperlink `json:"notifications_url,omitempty"`
OrganizationRepositoriesURL Hyperlink `json:"organization_repositories_url,omitempty"`
OrganizationURL Hyperlink `json:"organization_url,omitempty"`
PublicGistsURL Hyperlink `json:"public_gists_url,omitempty"`
PullsURL Hyperlink `json:"-"`
}