@ -74,7 +74,7 @@ import (
api "code.gitea.io/sdk/gitea"
"github.com/go-macaron/binding"
"gopkg.in/macaron.v1"
macaron "gopkg.in/macaron.v1"
)
func sudo ( ) macaron . Handler {
@ -371,6 +371,13 @@ func mustEnableUserHeatmap(ctx *context.Context) {
}
}
func mustNotBeArchived ( ctx * context . Context ) {
if ctx . Repo . Repository . IsArchived {
ctx . Status ( 404 )
return
}
}
// RegisterRoutes registers all v1 APIs routes to web application.
// FIXME: custom form error response
func RegisterRoutes ( m * macaron . Macaron ) {
@ -518,11 +525,11 @@ func RegisterRoutes(m *macaron.Macaron) {
} , mustEnableIssues )
m . Group ( "/issues" , func ( ) {
m . Combo ( "" ) . Get ( repo . ListIssues ) .
Post ( reqToken ( ) , bind ( api . CreateIssueOption { } ) , repo . CreateIssue )
Post ( reqToken ( ) , mustNotBeArchived , bind ( api . CreateIssueOption { } ) , repo . CreateIssue )
m . Group ( "/comments" , func ( ) {
m . Get ( "" , repo . ListRepoIssueComments )
m . Combo ( "/:id" , reqToken ( ) ) .
Patch ( bind ( api . EditIssueCommentOption { } ) , repo . EditIssueComment ) .
Patch ( mustNotBeArchived , bind ( api . EditIssueCommentOption { } ) , repo . EditIssueComment ) .
Delete ( repo . DeleteIssueComment )
} )
m . Group ( "/:index" , func ( ) {
@ -531,7 +538,7 @@ func RegisterRoutes(m *macaron.Macaron) {
m . Group ( "/comments" , func ( ) {
m . Combo ( "" ) . Get ( repo . ListIssueComments ) .
Post ( reqToken ( ) , bind ( api . CreateIssueCommentOption { } ) , repo . CreateIssueComment )
Post ( reqToken ( ) , mustNotBeArchived , bind ( api . CreateIssueCommentOption { } ) , repo . CreateIssueComment )
m . Combo ( "/:id" , reqToken ( ) ) . Patch ( bind ( api . EditIssueCommentOption { } ) , repo . EditIssueCommentDeprecated ) .
Delete ( repo . DeleteIssueCommentDeprecated )
} )
@ -593,12 +600,12 @@ func RegisterRoutes(m *macaron.Macaron) {
m . Get ( "/editorconfig/:filename" , context . RepoRef ( ) , reqRepoReader ( models . UnitTypeCode ) , repo . GetEditorconfig )
m . Group ( "/pulls" , func ( ) {
m . Combo ( "" ) . Get ( bind ( api . ListPullRequestsOptions { } ) , repo . ListPullRequests ) .
Post ( reqToken ( ) , bind ( api . CreatePullRequestOption { } ) , repo . CreatePullRequest )
Post ( reqToken ( ) , mustNotBeArchived , bind ( api . CreatePullRequestOption { } ) , repo . CreatePullRequest )
m . Group ( "/:index" , func ( ) {
m . Combo ( "" ) . Get ( repo . GetPullRequest ) .
Patch ( reqToken ( ) , reqRepoWriter ( models . UnitTypePullRequests ) , bind ( api . EditPullRequestOption { } ) , repo . EditPullRequest )
m . Combo ( "/merge" ) . Get ( repo . IsPullRequestMerged ) .
Post ( reqToken ( ) , reqRepoWriter ( models . UnitTypePullRequests ) , bind ( auth . MergePullRequestForm { } ) , repo . MergePullRequest )
Post ( reqToken ( ) , mustNotBeArchived , reqRepoWriter ( models . UnitTypePullRequests ) , bind ( auth . MergePullRequestForm { } ) , repo . MergePullRequest )
} )
} , mustAllowPulls , reqRepoReader ( models . UnitTypeCode ) , context . ReferencesGitRepo ( ) )
m . Group ( "/statuses" , func ( ) {