Merge pull request #1736 from soudy/develop
Added repository remove option to API
This commit is contained in:
		
						commit
						b1941f1da1
					
				| @ -226,6 +226,7 @@ func runWeb(ctx *cli.Context) { | |||||||
| 
 | 
 | ||||||
| 				m.Group("", func() { | 				m.Group("", func() { | ||||||
| 					m.Post("/migrate", bindIgnErr(auth.MigrateRepoForm{}), v1.MigrateRepo) | 					m.Post("/migrate", bindIgnErr(auth.MigrateRepoForm{}), v1.MigrateRepo) | ||||||
|  | 					m.Delete("/:owner/:reponame", v1.RemoveRepo) | ||||||
| 				}, middleware.ApiReqToken()) | 				}, middleware.ApiReqToken()) | ||||||
| 
 | 
 | ||||||
| 				m.Group("/:username/:reponame", func() { | 				m.Group("/:username/:reponame", func() { | ||||||
|  | |||||||
| @ -253,3 +253,39 @@ func MigrateRepo(ctx *middleware.Context, form auth.MigrateRepoForm) { | |||||||
| 	log.Trace("Repository migrated: %s/%s", ctxUser.Name, form.RepoName) | 	log.Trace("Repository migrated: %s/%s", ctxUser.Name, form.RepoName) | ||||||
| 	ctx.JSON(201, ToApiRepository(ctxUser, repo, api.Permission{true, true, true})) | 	ctx.JSON(201, ToApiRepository(ctxUser, repo, api.Permission{true, true, true})) | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func RemoveRepo(ctx *middleware.Context) { | ||||||
|  | 	user, err := models.GetUserByName(ctx.Params(":owner")) | ||||||
|  | 	if err != nil { | ||||||
|  | 		if models.IsErrUserNotExist(err) { | ||||||
|  | 			ctx.HandleAPI(404, err) | ||||||
|  | 		} else { | ||||||
|  | 			ctx.JSON(500, &base.ApiJsonErr{"GetUserByName: " + err.Error(), base.DOC_URL}) | ||||||
|  | 		} | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	repo, err := models.GetRepositoryByName(user.Id, ctx.Params(":reponame")) | ||||||
|  | 	if err != nil { | ||||||
|  | 		if models.IsErrRepoNotExist(err) { | ||||||
|  | 			ctx.HandleAPI(404, err) | ||||||
|  | 		} else { | ||||||
|  | 			ctx.JSON(500, &base.ApiJsonErr{"GetRepositoryByName: " + err.Error(), base.DOC_URL}) | ||||||
|  | 		} | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if user.IsOrganization() && !user.IsOwnedBy(ctx.User.Id) { | ||||||
|  | 		ctx.HandleAPI(403, "Given user is not owner of organization.") | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if err := models.DeleteRepository(user.Id, repo.ID); err != nil { | ||||||
|  | 		log.Error(4, "DeleteRespository: %v:", err) | ||||||
|  | 		ctx.HandleAPI(500, err) | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	log.Trace("Repository deleted: %s/%s", user.Name, repo.Name) | ||||||
|  | 	ctx.Status(204) | ||||||
|  | } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user