2016-11-07 14:53:13 +01:00
// Copyright 2015 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package gitea
import (
"bytes"
"encoding/json"
"fmt"
)
2016-11-29 09:09:17 +01:00
// Organization a group of some repositories, users and teams
2016-11-07 14:53:13 +01:00
type Organization struct {
ID int64 ` json:"id" `
UserName string ` json:"username" `
FullName string ` json:"full_name" `
2016-11-29 09:09:17 +01:00
AvatarURL string ` json:"avatar_url" `
2016-11-07 14:53:13 +01:00
Description string ` json:"description" `
Website string ` json:"website" `
Location string ` json:"location" `
}
2016-11-29 09:09:17 +01:00
// ListMyOrgs list all of current user's organizations
2016-11-07 14:53:13 +01:00
func ( c * Client ) ListMyOrgs ( ) ( [ ] * Organization , error ) {
orgs := make ( [ ] * Organization , 0 , 5 )
return orgs , c . getParsedResponse ( "GET" , "/user/orgs" , nil , nil , & orgs )
}
2016-11-29 09:09:17 +01:00
// ListUserOrgs list all of some user's organizations
2016-11-07 14:53:13 +01:00
func ( c * Client ) ListUserOrgs ( user string ) ( [ ] * Organization , error ) {
orgs := make ( [ ] * Organization , 0 , 5 )
return orgs , c . getParsedResponse ( "GET" , fmt . Sprintf ( "/users/%s/orgs" , user ) , nil , nil , & orgs )
}
2016-11-29 09:09:17 +01:00
// GetOrg get one organization by name
2016-11-07 14:53:13 +01:00
func ( c * Client ) GetOrg ( orgname string ) ( * Organization , error ) {
org := new ( Organization )
return org , c . getParsedResponse ( "GET" , fmt . Sprintf ( "/orgs/%s" , orgname ) , nil , nil , org )
}
2016-11-29 09:09:17 +01:00
// CreateOrgOption create one organization options
2016-11-07 14:53:13 +01:00
type CreateOrgOption struct {
UserName string ` json:"username" binding:"Required" `
FullName string ` json:"full_name" `
Description string ` json:"description" `
Website string ` json:"website" `
Location string ` json:"location" `
}
2016-11-29 09:09:17 +01:00
// EditOrgOption edit one organization options
2016-11-07 14:53:13 +01:00
type EditOrgOption struct {
FullName string ` json:"full_name" `
Description string ` json:"description" `
Website string ` json:"website" `
Location string ` json:"location" `
}
2016-11-29 09:09:17 +01:00
// EditOrg modify one organization via options
2016-11-07 14:53:13 +01:00
func ( c * Client ) EditOrg ( orgname string , opt EditOrgOption ) error {
body , err := json . Marshal ( & opt )
if err != nil {
return err
}
_ , err = c . getResponse ( "PATCH" , fmt . Sprintf ( "/orgs/%s" , orgname ) , jsonHeader , bytes . NewReader ( body ) )
return err
}