2015-12-17 10:28:47 +03: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 org
import (
api "github.com/gogits/go-gogs-client"
"github.com/gogits/gogs/models"
2016-03-11 19:56:52 +03:00
"github.com/gogits/gogs/modules/context"
2015-12-17 10:28:47 +03:00
"github.com/gogits/gogs/routers/api/v1/convert"
"github.com/gogits/gogs/routers/api/v1/user"
)
2016-03-14 01:49:16 +03:00
func listUserOrgs ( ctx * context . APIContext , u * models . User , all bool ) {
2015-12-17 10:28:47 +03:00
if err := u . GetOrganizations ( all ) ; err != nil {
2016-03-14 01:49:16 +03:00
ctx . Error ( 500 , "GetOrganizations" , err )
2015-12-17 10:28:47 +03:00
return
}
apiOrgs := make ( [ ] * api . Organization , len ( u . Orgs ) )
for i := range u . Orgs {
2016-03-14 06:20:22 +03:00
apiOrgs [ i ] = convert . ToOrganization ( u . Orgs [ i ] )
2015-12-17 10:28:47 +03:00
}
ctx . JSON ( 200 , & apiOrgs )
}
// https://github.com/gogits/go-gogs-client/wiki/Organizations#list-your-organizations
2016-03-14 01:49:16 +03:00
func ListMyOrgs ( ctx * context . APIContext ) {
2015-12-17 10:28:47 +03:00
listUserOrgs ( ctx , ctx . User , true )
}
// https://github.com/gogits/go-gogs-client/wiki/Organizations#list-user-organizations
2016-03-14 01:49:16 +03:00
func ListUserOrgs ( ctx * context . APIContext ) {
2015-12-17 10:28:47 +03:00
u := user . GetUserByParams ( ctx )
if ctx . Written ( ) {
return
}
listUserOrgs ( ctx , u , false )
}
// https://github.com/gogits/go-gogs-client/wiki/Organizations#get-an-organization
2016-03-14 01:49:16 +03:00
func Get ( ctx * context . APIContext ) {
2016-03-26 01:04:02 +03:00
ctx . JSON ( 200 , convert . ToOrganization ( ctx . Org . Organization ) )
2015-12-17 10:28:47 +03:00
}
// https://github.com/gogits/go-gogs-client/wiki/Organizations#edit-an-organization
2016-03-14 01:49:16 +03:00
func Edit ( ctx * context . APIContext , form api . EditOrgOption ) {
2016-03-26 01:04:02 +03:00
org := ctx . Org . Organization
2015-12-17 10:28:47 +03:00
if ! org . IsOwnedBy ( ctx . User . Id ) {
2016-03-14 01:49:16 +03:00
ctx . Status ( 403 )
2015-12-17 10:28:47 +03:00
return
}
org . FullName = form . FullName
org . Description = form . Description
org . Website = form . Website
org . Location = form . Location
if err := models . UpdateUser ( org ) ; err != nil {
2016-03-14 01:49:16 +03:00
ctx . Error ( 500 , "UpdateUser" , err )
2015-12-17 10:28:47 +03:00
return
}
2016-03-14 06:20:22 +03:00
ctx . JSON ( 200 , convert . ToOrganization ( org ) )
2015-12-17 10:28:47 +03:00
}