Improve swagger doc (#67)

* Add some swagger response type

* Add some swagger parameters

* Add some swagger parameters

* Use HookList in place of []*Hook
This commit is contained in:
Antoine GIRARD 2017-08-21 10:23:17 +02:00 committed by Lunny Xiao
parent 82df6bc38d
commit bc243ad6c2
6 changed files with 91 additions and 38 deletions

View file

@ -11,13 +11,21 @@ import (
) )
// CreateUserOption create user options // CreateUserOption create user options
// swagger:parameters adminCreateUser
type CreateUserOption struct { type CreateUserOption struct {
// in: body
SourceID int64 `json:"source_id"` SourceID int64 `json:"source_id"`
// in: body
LoginName string `json:"login_name"` LoginName string `json:"login_name"`
// in: body
Username string `json:"username" binding:"Required;AlphaDashDot;MaxSize(35)"` Username string `json:"username" binding:"Required;AlphaDashDot;MaxSize(35)"`
// in: body
FullName string `json:"full_name" binding:"MaxSize(100)"` FullName string `json:"full_name" binding:"MaxSize(100)"`
// in: body
Email string `json:"email" binding:"Required;Email;MaxSize(254)"` Email string `json:"email" binding:"Required;Email;MaxSize(254)"`
// in: body
Password string `json:"password" binding:"MaxSize(255)"` Password string `json:"password" binding:"MaxSize(255)"`
// in: body
SendNotify bool `json:"send_notify"` SendNotify bool `json:"send_notify"`
} }
@ -32,18 +40,31 @@ func (c *Client) AdminCreateUser(opt CreateUserOption) (*User, error) {
} }
// EditUserOption edit user options // EditUserOption edit user options
// swagger:parameters adminEditUser
type EditUserOption struct { type EditUserOption struct {
// in: body
SourceID int64 `json:"source_id"` SourceID int64 `json:"source_id"`
// in: body
LoginName string `json:"login_name"` LoginName string `json:"login_name"`
// in: body
FullName string `json:"full_name" binding:"MaxSize(100)"` FullName string `json:"full_name" binding:"MaxSize(100)"`
// in: body
Email string `json:"email" binding:"Required;Email;MaxSize(254)"` Email string `json:"email" binding:"Required;Email;MaxSize(254)"`
// in: body
Password string `json:"password" binding:"MaxSize(255)"` Password string `json:"password" binding:"MaxSize(255)"`
// in: body
Website string `json:"website" binding:"MaxSize(50)"` Website string `json:"website" binding:"MaxSize(50)"`
// in: body
Location string `json:"location" binding:"MaxSize(50)"` Location string `json:"location" binding:"MaxSize(50)"`
// in: body
Active *bool `json:"active"` Active *bool `json:"active"`
// in: body
Admin *bool `json:"admin"` Admin *bool `json:"admin"`
// in: body
AllowGitHook *bool `json:"allow_git_hook"` AllowGitHook *bool `json:"allow_git_hook"`
// in: body
AllowImportLocal *bool `json:"allow_import_local"` AllowImportLocal *bool `json:"allow_import_local"`
// in: body
MaxRepoCreation *int `json:"max_repo_creation"` MaxRepoCreation *int `json:"max_repo_creation"`
} }

View file

@ -20,7 +20,9 @@ func (c *Client) ListForks(user, repo string) ([]*Repository, error) {
} }
// CreateForkOption options for creating a fork // CreateForkOption options for creating a fork
// swagger:parameters createFork
type CreateForkOption struct { type CreateForkOption struct {
// in: body
Organization *string `json:"organization"` Organization *string `json:"organization"`
} }

View file

@ -20,6 +20,7 @@ var (
) )
// Hook a hook is a web hook when one repository changed // Hook a hook is a web hook when one repository changed
// swagger:response Hook
type Hook struct { type Hook struct {
ID int64 `json:"id"` ID int64 `json:"id"`
Type string `json:"type"` Type string `json:"type"`
@ -31,14 +32,18 @@ type Hook struct {
Created time.Time `json:"created_at"` Created time.Time `json:"created_at"`
} }
// HookList represents a list of API hook.
// swagger:response HookList
type HookList []*Hook
// ListOrgHooks list all the hooks of one organization // ListOrgHooks list all the hooks of one organization
func (c *Client) ListOrgHooks(org string) ([]*Hook, error) { func (c *Client) ListOrgHooks(org string) (HookList, error) {
hooks := make([]*Hook, 0, 10) hooks := make([]*Hook, 0, 10)
return hooks, c.getParsedResponse("GET", fmt.Sprintf("/orgs/%s/hooks", org), nil, nil, &hooks) return hooks, c.getParsedResponse("GET", fmt.Sprintf("/orgs/%s/hooks", org), nil, nil, &hooks)
} }
// ListRepoHooks list all the hooks of one repository // ListRepoHooks list all the hooks of one repository
func (c *Client) ListRepoHooks(user, repo string) ([]*Hook, error) { func (c *Client) ListRepoHooks(user, repo string) (HookList, error) {
hooks := make([]*Hook, 0, 10) hooks := make([]*Hook, 0, 10)
return hooks, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/hooks", user, repo), nil, nil, &hooks) return hooks, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/hooks", user, repo), nil, nil, &hooks)
} }
@ -56,10 +61,15 @@ func (c *Client) GetRepoHook(user, repo string, id int64) (*Hook, error) {
} }
// CreateHookOption options when create a hook // CreateHookOption options when create a hook
// swagger:parameters orgCreateHook repoCreateHook
type CreateHookOption struct { type CreateHookOption struct {
// in: body
Type string `json:"type" binding:"Required"` Type string `json:"type" binding:"Required"`
// in: body
Config map[string]string `json:"config" binding:"Required"` Config map[string]string `json:"config" binding:"Required"`
// in: body
Events []string `json:"events"` Events []string `json:"events"`
// in: body
Active bool `json:"active"` Active bool `json:"active"`
} }
@ -84,9 +94,13 @@ func (c *Client) CreateRepoHook(user, repo string, opt CreateHookOption) (*Hook,
} }
// EditHookOption options when modify one hook // EditHookOption options when modify one hook
// swagger:parameters orgEditHook repoEditHook
type EditHookOption struct { type EditHookOption struct {
// in: body
Config map[string]string `json:"config"` Config map[string]string `json:"config"`
// in: body
Events []string `json:"events"` Events []string `json:"events"`
// in: body
Active *bool `json:"active"` Active *bool `json:"active"`
} }

View file

@ -11,6 +11,7 @@ import (
) )
// Organization a group of some repositories, users and teams // Organization a group of some repositories, users and teams
// swagger:response Organization
type Organization struct { type Organization struct {
ID int64 `json:"id"` ID int64 `json:"id"`
UserName string `json:"username"` UserName string `json:"username"`
@ -40,11 +41,17 @@ func (c *Client) GetOrg(orgname string) (*Organization, error) {
} }
// CreateOrgOption create one organization options // CreateOrgOption create one organization options
// swagger:parameters adminCreateOrg
type CreateOrgOption struct { type CreateOrgOption struct {
// in: body
UserName string `json:"username" binding:"Required"` UserName string `json:"username" binding:"Required"`
// in: body
FullName string `json:"full_name"` FullName string `json:"full_name"`
// in: body
Description string `json:"description"` Description string `json:"description"`
// in: body
Website string `json:"website"` Website string `json:"website"`
// in: body
Location string `json:"location"` Location string `json:"location"`
} }

View file

@ -69,7 +69,7 @@ func (c *Client) ListOrgRepos(org string) ([]*Repository, error) {
} }
// CreateRepoOption options when creating repository // CreateRepoOption options when creating repository
//swagger:parameters createOrgRepo //swagger:parameters createOrgRepo adminCreateRepo createCurrentUserRepo
type CreateRepoOption struct { type CreateRepoOption struct {
// Name of the repository to create // Name of the repository to create
// //
@ -135,14 +135,23 @@ func (c *Client) DeleteRepo(owner, repo string) error {
} }
// MigrateRepoOption options when migrate repository from an external place // MigrateRepoOption options when migrate repository from an external place
// swagger:parameters repoMigrate
type MigrateRepoOption struct { type MigrateRepoOption struct {
// in: body
CloneAddr string `json:"clone_addr" binding:"Required"` CloneAddr string `json:"clone_addr" binding:"Required"`
// in: body
AuthUsername string `json:"auth_username"` AuthUsername string `json:"auth_username"`
// in: body
AuthPassword string `json:"auth_password"` AuthPassword string `json:"auth_password"`
// in: body
UID int `json:"uid" binding:"Required"` UID int `json:"uid" binding:"Required"`
// in: body
RepoName string `json:"repo_name" binding:"Required"` RepoName string `json:"repo_name" binding:"Required"`
// in: body
Mirror bool `json:"mirror"` Mirror bool `json:"mirror"`
// in: body
Private bool `json:"private"` Private bool `json:"private"`
// in: body
Description string `json:"description"` Description string `json:"description"`
} }

View file

@ -34,7 +34,7 @@ func (c *Client) GetDeployKey(user, repo string, keyID int64) (*DeployKey, error
} }
// CreateKeyOption options when create deploy key // CreateKeyOption options when create deploy key
// swagger:parameters userCurrentPostKey // swagger:parameters userCurrentPostKey adminCreatePublicKey
type CreateKeyOption struct { type CreateKeyOption struct {
// Title of the key to add // Title of the key to add
// //