org_team.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package admin
  2. import (
  3. "gitote/gitote/models"
  4. "gitote/gitote/pkg/context"
  5. "gitote/gitote/routes/api/v1/convert"
  6. "gitote/gitote/routes/api/v1/user"
  7. api "gitlab.com/gitote/go-gitote-client"
  8. )
  9. func CreateTeam(c *context.APIContext, form api.CreateTeamOption) {
  10. team := &models.Team{
  11. OrgID: c.Org.Organization.ID,
  12. Name: form.Name,
  13. Description: form.Description,
  14. Authorize: models.ParseAccessMode(form.Permission),
  15. }
  16. if err := models.NewTeam(team); err != nil {
  17. if models.IsErrTeamAlreadyExist(err) {
  18. c.Error(422, "", err)
  19. } else {
  20. c.Error(500, "NewTeam", err)
  21. }
  22. return
  23. }
  24. c.JSON(201, convert.ToTeam(team))
  25. }
  26. func AddTeamMember(c *context.APIContext) {
  27. u := user.GetUserByParams(c)
  28. if c.Written() {
  29. return
  30. }
  31. if err := c.Org.Team.AddMember(u.ID); err != nil {
  32. c.Error(500, "AddMember", err)
  33. return
  34. }
  35. c.Status(204)
  36. }
  37. func RemoveTeamMember(c *context.APIContext) {
  38. u := user.GetUserByParams(c)
  39. if c.Written() {
  40. return
  41. }
  42. if err := c.Org.Team.RemoveMember(u.ID); err != nil {
  43. c.Error(500, "RemoveMember", err)
  44. return
  45. }
  46. c.Status(204)
  47. }