mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-05-19 08:20:13 +00:00
add api for user to create org (#5268)
* add api for user to create org * remove unused blank line on the swagger file end * fix create and add test * fix tests * fix routes of create org API * fix bug * add copyright heads
This commit is contained in:
parent
499bff43d9
commit
8ef177f8c5
4 changed files with 137 additions and 0 deletions
|
@ -1,4 +1,5 @@
|
|||
// Copyright 2015 The Gogs Authors. All rights reserved.
|
||||
// Copyright 2018 The Gitea Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
|
@ -62,6 +63,56 @@ func ListUserOrgs(ctx *context.APIContext) {
|
|||
listUserOrgs(ctx, u, false)
|
||||
}
|
||||
|
||||
// Create api for create organization
|
||||
func Create(ctx *context.APIContext, form api.CreateOrgOption) {
|
||||
// swagger:operation POST /orgs organization orgCreate
|
||||
// ---
|
||||
// summary: Create an organization
|
||||
// consumes:
|
||||
// - application/json
|
||||
// produces:
|
||||
// - application/json
|
||||
// parameters:
|
||||
// - name: organization
|
||||
// in: body
|
||||
// required: true
|
||||
// schema: { "$ref": "#/definitions/CreateOrgOption" }
|
||||
// responses:
|
||||
// "201":
|
||||
// "$ref": "#/responses/Organization"
|
||||
// "403":
|
||||
// "$ref": "#/responses/forbidden"
|
||||
// "422":
|
||||
// "$ref": "#/responses/validationError"
|
||||
|
||||
if !ctx.User.AllowCreateOrganization {
|
||||
ctx.Error(403, "Create organization not allowed", nil)
|
||||
return
|
||||
}
|
||||
|
||||
org := &models.User{
|
||||
Name: form.UserName,
|
||||
FullName: form.FullName,
|
||||
Description: form.Description,
|
||||
Website: form.Website,
|
||||
Location: form.Location,
|
||||
IsActive: true,
|
||||
Type: models.UserTypeOrganization,
|
||||
}
|
||||
if err := models.CreateOrganization(org, ctx.User); err != nil {
|
||||
if models.IsErrUserAlreadyExist(err) ||
|
||||
models.IsErrNameReserved(err) ||
|
||||
models.IsErrNamePatternNotAllowed(err) {
|
||||
ctx.Error(422, "", err)
|
||||
} else {
|
||||
ctx.Error(500, "CreateOrganization", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
ctx.JSON(201, convert.ToOrganization(org))
|
||||
}
|
||||
|
||||
// Get get an organization
|
||||
func Get(ctx *context.APIContext) {
|
||||
// swagger:operation GET /orgs/{org} organization orgGet
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue