Returns NotFound() if the repository does not exist.

This commit is contained in:
takezoe
2013-06-16 13:38:36 +09:00
parent ffd0c4f195
commit 0461b586ea

View File

@@ -31,10 +31,13 @@ trait WikiControllerBase extends ControllerBase {
val owner = params("owner") val owner = params("owner")
val repository = params("repository") val repository = params("repository")
getWikiPage(owner, repository, "Home") match { getRepository(owner, repository, baseUrl) match {
case Some(page) => wiki.html.wiki("Home", page, getRepository(owner, repository, baseUrl).get, isWritable(owner, repository)) case Some(repoInfo) => getWikiPage(owner, repository, "Home") match {
case Some(page) => wiki.html.wiki("Home", page, repoInfo, isWritable(owner, repository))
case None => redirect("/%s/%s/wiki/Home/_edit".format(owner, repository)) case None => redirect("/%s/%s/wiki/Home/_edit".format(owner, repository))
} }
case None => NotFound()
}
}) })
get("/:owner/:repository/wiki/:page")(readableRepository { get("/:owner/:repository/wiki/:page")(readableRepository {
@@ -53,9 +56,11 @@ trait WikiControllerBase extends ControllerBase {
val repository = params("repository") val repository = params("repository")
val page = params("page") val page = params("page")
JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git => getRepository(owner, repository, baseUrl) match {
wiki.html.wikihistory(Some(page), case Some(repoInfo) => JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git =>
JGitUtil.getCommitLog(git, "master", path = page + ".md")._1, getRepository(owner, repository, baseUrl).get) wiki.html.wikihistory(Some(page), JGitUtil.getCommitLog(git, "master", path = page + ".md")._1, repoInfo)
}
case None => NotFound()
} }
}) })
@@ -76,9 +81,11 @@ trait WikiControllerBase extends ControllerBase {
val repository = params("repository") val repository = params("repository")
val commitId = params("commitId").split("\\.\\.\\.") val commitId = params("commitId").split("\\.\\.\\.")
JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git => getRepository(owner, repository, baseUrl) match {
wiki.html.wikicompare(None, case Some(repoInfo) => JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git =>
getWikiDiffs(git, commitId(0), commitId(1)), getRepository(owner, repository, baseUrl).get) wiki.html.wikicompare(None, getWikiDiffs(git, commitId(0), commitId(1)), repoInfo)
}
case None => NotFound()
} }
}) })
@@ -87,8 +94,10 @@ trait WikiControllerBase extends ControllerBase {
val repository = params("repository") val repository = params("repository")
val page = params("page") val page = params("page")
wiki.html.wikiedit(page, getRepository(owner, repository, baseUrl) match {
getWikiPage(owner, repository, page), getRepository(owner, repository, baseUrl).get) case Some(repoInfo) => wiki.html.wikiedit(page, getWikiPage(owner, repository, page), repoInfo)
case None => NotFound()
}
}) })
post("/:owner/:repository/wiki/_edit", editForm)(writableRepository { form => post("/:owner/:repository/wiki/_edit", editForm)(writableRepository { form =>
@@ -105,7 +114,10 @@ trait WikiControllerBase extends ControllerBase {
val owner = params("owner") val owner = params("owner")
val repository = params("repository") val repository = params("repository")
wiki.html.wikiedit("", None, getRepository(owner, repository, baseUrl).get) getRepository(owner, repository, baseUrl) match {
case Some(repoInfo) => wiki.html.wikiedit("", None, repoInfo)
case None => NotFound()
}
}) })
post("/:owner/:repository/wiki/_new", newForm)(writableRepository { form => post("/:owner/:repository/wiki/_new", newForm)(writableRepository { form =>
@@ -132,16 +144,21 @@ trait WikiControllerBase extends ControllerBase {
val owner = params("owner") val owner = params("owner")
val repository = params("repository") val repository = params("repository")
wiki.html.wikipages(getWikiPageList(owner, repository), getRepository(owner, repository, baseUrl).get, isWritable(owner, repository)) getRepository(owner, repository, baseUrl) match {
case Some(repoInfo) => wiki.html.wikipages(getWikiPageList(owner, repository), repoInfo, isWritable(owner, repository))
case None => NotFound()
}
}) })
get("/:owner/:repository/wiki/_history")(readableRepository { get("/:owner/:repository/wiki/_history")(readableRepository {
val owner = params("owner") val owner = params("owner")
val repository = params("repository") val repository = params("repository")
JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git => getRepository(owner, repository, baseUrl) match {
wiki.html.wikihistory(None, case Some(repoInfo) => JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git =>
JGitUtil.getCommitLog(git, "master")._1, getRepository(owner, repository, baseUrl).get) wiki.html.wikihistory(None, JGitUtil.getCommitLog(git, "master")._1, repoInfo)
}
case None => NotFound()
} }
}) })
@@ -150,8 +167,13 @@ trait WikiControllerBase extends ControllerBase {
val repository = params("repository") val repository = params("repository")
val path = multiParams("splat").head val path = multiParams("splat").head
getFileContent(owner, repository, path) match {
case Some(content) => {
contentType = "application/octet-stream" contentType = "application/octet-stream"
getFileContent(owner, repository, path).get content
}
case None => NotFound()
}
}) })
/** /**