|
@@ -252,37 +252,55 @@ func MigrateRepo(ctx *middleware.Context, form auth.MigrateRepoForm) {
|
|
|
ctx.JSON(201, ToApiRepository(ctxUser, repo, api.Permission{true, true, true}))
|
|
|
}
|
|
|
|
|
|
-func DeleteRepo(ctx *middleware.Context) {
|
|
|
- user, err := models.GetUserByName(ctx.Params(":username"))
|
|
|
+func parseOwnerAndRepo(ctx *middleware.Context) (*models.User, *models.Repository) {
|
|
|
+ owner, err := models.GetUserByName(ctx.Params(":username"))
|
|
|
if err != nil {
|
|
|
if models.IsErrUserNotExist(err) {
|
|
|
ctx.APIError(422, "", err)
|
|
|
} else {
|
|
|
ctx.APIError(500, "GetUserByName", err)
|
|
|
}
|
|
|
- return
|
|
|
+ return nil, nil
|
|
|
}
|
|
|
|
|
|
- repo, err := models.GetRepositoryByName(user.Id, ctx.Params(":reponame"))
|
|
|
+ repo, err := models.GetRepositoryByName(owner.Id, ctx.Params(":reponame"))
|
|
|
if err != nil {
|
|
|
if models.IsErrRepoNotExist(err) {
|
|
|
ctx.Error(404)
|
|
|
} else {
|
|
|
ctx.APIError(500, "GetRepositoryByName", err)
|
|
|
}
|
|
|
+ return nil, nil
|
|
|
+ }
|
|
|
+
|
|
|
+ return owner, repo
|
|
|
+}
|
|
|
+
|
|
|
+func GetRepo(ctx *middleware.Context) {
|
|
|
+ owner, repo := parseOwnerAndRepo(ctx)
|
|
|
+ if ctx.Written() {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ ctx.JSON(200, ToApiRepository(owner, repo, api.Permission{true, true, true}))
|
|
|
+}
|
|
|
+
|
|
|
+func DeleteRepo(ctx *middleware.Context) {
|
|
|
+ owner, repo := parseOwnerAndRepo(ctx)
|
|
|
+ if ctx.Written() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- if user.IsOrganization() && !user.IsOwnedBy(ctx.User.Id) {
|
|
|
+ if owner.IsOrganization() && !owner.IsOwnedBy(ctx.User.Id) {
|
|
|
ctx.APIError(403, "", "Given user is not owner of organization.")
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- if err := models.DeleteRepository(user.Id, repo.ID); err != nil {
|
|
|
+ if err := models.DeleteRepository(owner.Id, repo.ID); err != nil {
|
|
|
ctx.APIError(500, "DeleteRepository", err)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- log.Trace("Repository deleted: %s/%s", user.Name, repo.Name)
|
|
|
+ log.Trace("Repository deleted: %s/%s", owner.Name, repo.Name)
|
|
|
ctx.Status(204)
|
|
|
}
|