You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.1 KiB

  1. // Copyright 2016 The Gogs Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package admin
  5. import (
  6. "github.com/gogits/gogs/models"
  7. "github.com/gogits/gogs/modules/context"
  8. )
  9. func GetRepositoryByParams(ctx *context.APIContext) *models.Repository {
  10. repo, err := models.GetRepositoryByName(ctx.Org.Team.OrgID, ctx.Params(":reponame"))
  11. if err != nil {
  12. if models.IsErrRepoNotExist(err) {
  13. ctx.Status(404)
  14. } else {
  15. ctx.Error(500, "GetRepositoryByName", err)
  16. }
  17. return nil
  18. }
  19. return repo
  20. }
  21. func AddTeamRepository(ctx *context.APIContext) {
  22. repo := GetRepositoryByParams(ctx)
  23. if ctx.Written() {
  24. return
  25. }
  26. if err := ctx.Org.Team.AddRepository(repo); err != nil {
  27. ctx.Error(500, "AddRepository", err)
  28. return
  29. }
  30. ctx.Status(204)
  31. }
  32. func RemoveTeamRepository(ctx *context.APIContext) {
  33. repo := GetRepositoryByParams(ctx)
  34. if ctx.Written() {
  35. return
  36. }
  37. if err := ctx.Org.Team.RemoveRepository(repo.ID); err != nil {
  38. ctx.Error(500, "RemoveRepository", err)
  39. return
  40. }
  41. ctx.Status(204)
  42. }