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 admin
import (
2016-11-07 18:02:19 +03:00
api "github.com/go-gitea/go-sdk/gitea"
2015-12-17 10:28:47 +03:00
2016-11-03 15:29:56 +03:00
"github.com/go-gitea/gitea/models"
"github.com/go-gitea/gitea/modules/context"
"github.com/go-gitea/gitea/routers/api/v1/convert"
"github.com/go-gitea/gitea/routers/api/v1/user"
2015-12-17 10:28:47 +03:00
)
// https://github.com/gogits/go-gogs-client/wiki/Administration-Organizations#create-a-new-organization
2016-03-14 01:49:16 +03:00
func CreateOrg ( ctx * context . APIContext , form api . CreateOrgOption ) {
2015-12-17 10:28:47 +03:00
u := user . GetUserByParams ( ctx )
if ctx . Written ( ) {
return
}
org := & models . User {
Name : form . UserName ,
FullName : form . FullName ,
Description : form . Description ,
Website : form . Website ,
Location : form . Location ,
IsActive : true ,
2016-11-07 19:53:22 +03:00
Type : models . UserTypeOrganization ,
2015-12-17 10:28:47 +03:00
}
if err := models . CreateOrganization ( org , u ) ; err != nil {
if models . IsErrUserAlreadyExist ( err ) ||
models . IsErrNameReserved ( err ) ||
models . IsErrNamePatternNotAllowed ( err ) {
2016-03-21 19:53:04 +03:00
ctx . Error ( 422 , "" , err )
2015-12-17 10:28:47 +03:00
} else {
2016-03-14 01:49:16 +03:00
ctx . Error ( 500 , "CreateOrganization" , err )
2015-12-17 10:28:47 +03:00
}
return
}
2016-03-14 06:20:22 +03:00
ctx . JSON ( 201 , convert . ToOrganization ( org ) )
2015-12-17 10:28:47 +03:00
}