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-11 12:39:44 +03:00
api "code.gitea.io/sdk/gitea"
2015-12-17 10:28:47 +03:00
2016-11-10 19:24:48 +03:00
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/routers/api/v1/convert"
"code.gitea.io/gitea/routers/api/v1/user"
2015-12-17 10:28:47 +03:00
)
2016-11-24 10:04:31 +03:00
// CreateOrg api for create organization
2016-03-14 01:49:16 +03:00
func CreateOrg ( ctx * context . APIContext , form api . CreateOrgOption ) {
2017-08-21 14:13:47 +03:00
// swagger:route POST /admin/users/{username}/orgs admin adminCreateOrg
//
// Consumes:
// - application/json
//
// Produces:
// - application/json
//
// Responses:
// 201: Organization
// 403: forbidden
// 422: validationError
// 500: error
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
}