| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | 
							- // 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 (
 
- 	api "github.com/gogits/go-gogs-client"
 
- 	"github.com/gogits/gogs/models"
 
- 	"github.com/gogits/gogs/modules/context"
 
- 	"github.com/gogits/gogs/routers/api/v1/convert"
 
- 	"github.com/gogits/gogs/routers/api/v1/user"
 
- )
 
- // https://github.com/gogits/go-gogs-client/wiki/Administration-Organizations#create-a-new-organization
 
- func CreateOrg(ctx *context.APIContext, form api.CreateOrgOption) {
 
- 	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,
 
- 		Type:        models.USER_TYPE_ORGANIZATION,
 
- 	}
 
- 	if err := models.CreateOrganization(org, u); err != nil {
 
- 		if models.IsErrUserAlreadyExist(err) ||
 
- 			models.IsErrNameReserved(err) ||
 
- 			models.IsErrNamePatternNotAllowed(err) {
 
- 			ctx.Error(422, "CreateOrganization", err)
 
- 		} else {
 
- 			ctx.Error(500, "CreateOrganization", err)
 
- 		}
 
- 		return
 
- 	}
 
- 	ctx.JSON(201, convert.ToApiOrganization(org))
 
- }
 
 
  |