Fix comment API paths (#2813)
This commit is contained in:
		
							parent
							
								
									876bafb7ef
								
							
						
					
					
						commit
						c3b6383b3a
					
				
					 4 changed files with 278 additions and 94 deletions
				
			
		|  | @ -93,8 +93,8 @@ func TestAPIEditComment(t *testing.T) { | |||
| 	repoOwner := models.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User) | ||||
| 
 | ||||
| 	session := loginUser(t, repoOwner.Name) | ||||
| 	urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/comments/%d", | ||||
| 		repoOwner.Name, repo.Name, issue.Index, comment.ID) | ||||
| 	urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d", | ||||
| 		repoOwner.Name, repo.Name, comment.ID) | ||||
| 	req := NewRequestWithValues(t, "PATCH", urlStr, map[string]string{ | ||||
| 		"body": newCommentBody, | ||||
| 	}) | ||||
|  | @ -117,8 +117,8 @@ func TestAPIDeleteComment(t *testing.T) { | |||
| 	repoOwner := models.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User) | ||||
| 
 | ||||
| 	session := loginUser(t, repoOwner.Name) | ||||
| 	req := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/issues/%d/comments/%d", | ||||
| 		repoOwner.Name, repo.Name, issue.Index, comment.ID) | ||||
| 	req := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/issues/comments/%d", | ||||
| 		repoOwner.Name, repo.Name, comment.ID) | ||||
| 	session.MakeRequest(t, req, http.StatusNoContent) | ||||
| 
 | ||||
| 	models.AssertNotExistsBean(t, &models.Comment{ID: comment.ID}) | ||||
|  |  | |||
							
								
								
									
										271
									
								
								public/swagger.v1.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										271
									
								
								public/swagger.v1.json
									
									
									
									
										vendored
									
									
								
							|  | @ -1225,91 +1225,6 @@ | |||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "/repos/{owner}/{repo}/comments/{id}": { | ||||
|       "delete": { | ||||
|         "tags": [ | ||||
|           "issue" | ||||
|         ], | ||||
|         "summary": "Delete a comment", | ||||
|         "operationId": "issueDeleteComment", | ||||
|         "parameters": [ | ||||
|           { | ||||
|             "type": "string", | ||||
|             "description": "owner of the repo", | ||||
|             "name": "owner", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "type": "string", | ||||
|             "description": "name of the repo", | ||||
|             "name": "repo", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "type": "integer", | ||||
|             "description": "id of comment to delete", | ||||
|             "name": "id", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           } | ||||
|         ], | ||||
|         "responses": { | ||||
|           "204": { | ||||
|             "$ref": "#/responses/empty" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "patch": { | ||||
|         "consumes": [ | ||||
|           "application/json" | ||||
|         ], | ||||
|         "produces": [ | ||||
|           "application/json" | ||||
|         ], | ||||
|         "tags": [ | ||||
|           "issue" | ||||
|         ], | ||||
|         "summary": "Edit a comment", | ||||
|         "operationId": "issueEditComment", | ||||
|         "parameters": [ | ||||
|           { | ||||
|             "type": "string", | ||||
|             "description": "owner of the repo", | ||||
|             "name": "owner", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "type": "string", | ||||
|             "description": "name of the repo", | ||||
|             "name": "repo", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "type": "integer", | ||||
|             "description": "id of the comment to edit", | ||||
|             "name": "id", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "name": "body", | ||||
|             "in": "body", | ||||
|             "schema": { | ||||
|               "$ref": "#/definitions/EditIssueCommentOption" | ||||
|             } | ||||
|           } | ||||
|         ], | ||||
|         "responses": { | ||||
|           "200": { | ||||
|             "$ref": "#/responses/Comment" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "/repos/{owner}/{repo}/commits/{ref}/statuses": { | ||||
|       "get": { | ||||
|         "produces": [ | ||||
|  | @ -1965,6 +1880,91 @@ | |||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "/repos/{owner}/{repo}/issues/comments/{id}": { | ||||
|       "delete": { | ||||
|         "tags": [ | ||||
|           "issue" | ||||
|         ], | ||||
|         "summary": "Delete a comment", | ||||
|         "operationId": "issueDeleteComment", | ||||
|         "parameters": [ | ||||
|           { | ||||
|             "type": "string", | ||||
|             "description": "owner of the repo", | ||||
|             "name": "owner", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "type": "string", | ||||
|             "description": "name of the repo", | ||||
|             "name": "repo", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "type": "integer", | ||||
|             "description": "id of comment to delete", | ||||
|             "name": "id", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           } | ||||
|         ], | ||||
|         "responses": { | ||||
|           "204": { | ||||
|             "$ref": "#/responses/empty" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "patch": { | ||||
|         "consumes": [ | ||||
|           "application/json" | ||||
|         ], | ||||
|         "produces": [ | ||||
|           "application/json" | ||||
|         ], | ||||
|         "tags": [ | ||||
|           "issue" | ||||
|         ], | ||||
|         "summary": "Edit a comment", | ||||
|         "operationId": "issueEditComment", | ||||
|         "parameters": [ | ||||
|           { | ||||
|             "type": "string", | ||||
|             "description": "owner of the repo", | ||||
|             "name": "owner", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "type": "string", | ||||
|             "description": "name of the repo", | ||||
|             "name": "repo", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "type": "integer", | ||||
|             "description": "id of the comment to edit", | ||||
|             "name": "id", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "name": "body", | ||||
|             "in": "body", | ||||
|             "schema": { | ||||
|               "$ref": "#/definitions/EditIssueCommentOption" | ||||
|             } | ||||
|           } | ||||
|         ], | ||||
|         "responses": { | ||||
|           "200": { | ||||
|             "$ref": "#/responses/Comment" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "/repos/{owner}/{repo}/issues/{id}": { | ||||
|       "get": { | ||||
|         "produces": [ | ||||
|  | @ -2103,6 +2103,107 @@ | |||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "/repos/{owner}/{repo}/issues/{index}/comments/{id}": { | ||||
|       "delete": { | ||||
|         "tags": [ | ||||
|           "issue" | ||||
|         ], | ||||
|         "summary": "Delete a comment", | ||||
|         "operationId": "issueDeleteCommentDeprecated", | ||||
|         "deprecated": true, | ||||
|         "parameters": [ | ||||
|           { | ||||
|             "type": "string", | ||||
|             "description": "owner of the repo", | ||||
|             "name": "owner", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "type": "string", | ||||
|             "description": "name of the repo", | ||||
|             "name": "repo", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "type": "integer", | ||||
|             "description": "this parameter is ignored", | ||||
|             "name": "index", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "type": "integer", | ||||
|             "description": "id of comment to delete", | ||||
|             "name": "id", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           } | ||||
|         ], | ||||
|         "responses": { | ||||
|           "204": { | ||||
|             "$ref": "#/responses/empty" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "patch": { | ||||
|         "consumes": [ | ||||
|           "application/json" | ||||
|         ], | ||||
|         "produces": [ | ||||
|           "application/json" | ||||
|         ], | ||||
|         "tags": [ | ||||
|           "issue" | ||||
|         ], | ||||
|         "summary": "Edit a comment", | ||||
|         "operationId": "issueEditCommentDeprecated", | ||||
|         "deprecated": true, | ||||
|         "parameters": [ | ||||
|           { | ||||
|             "type": "string", | ||||
|             "description": "owner of the repo", | ||||
|             "name": "owner", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "type": "string", | ||||
|             "description": "name of the repo", | ||||
|             "name": "repo", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "type": "integer", | ||||
|             "description": "this parameter is ignored", | ||||
|             "name": "index", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "type": "integer", | ||||
|             "description": "id of the comment to edit", | ||||
|             "name": "id", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "name": "body", | ||||
|             "in": "body", | ||||
|             "schema": { | ||||
|               "$ref": "#/definitions/EditIssueCommentOption" | ||||
|             } | ||||
|           } | ||||
|         ], | ||||
|         "responses": { | ||||
|           "200": { | ||||
|             "$ref": "#/responses/Comment" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "/repos/{owner}/{repo}/issues/{index}/labels": { | ||||
|       "get": { | ||||
|         "produces": [ | ||||
|  |  | |||
|  | @ -406,7 +406,8 @@ func RegisterRoutes(m *macaron.Macaron) { | |||
| 					m.Group("/comments", func() { | ||||
| 						m.Get("", repo.ListRepoIssueComments) | ||||
| 						m.Combo("/:id", reqToken()). | ||||
| 							Patch(bind(api.EditIssueCommentOption{}), repo.EditIssueComment) | ||||
| 							Patch(bind(api.EditIssueCommentOption{}), repo.EditIssueComment). | ||||
| 							Delete(repo.DeleteIssueComment) | ||||
| 					}) | ||||
| 					m.Group("/:index", func() { | ||||
| 						m.Combo("").Get(repo.GetIssue). | ||||
|  | @ -415,8 +416,8 @@ func RegisterRoutes(m *macaron.Macaron) { | |||
| 						m.Group("/comments", func() { | ||||
| 							m.Combo("").Get(repo.ListIssueComments). | ||||
| 								Post(reqToken(), bind(api.CreateIssueCommentOption{}), repo.CreateIssueComment) | ||||
| 							m.Combo("/:id", reqToken()).Patch(bind(api.EditIssueCommentOption{}), repo.EditIssueComment). | ||||
| 								Delete(repo.DeleteIssueComment) | ||||
| 							m.Combo("/:id", reqToken()).Patch(bind(api.EditIssueCommentOption{}), repo.EditIssueCommentDeprecated). | ||||
| 								Delete(repo.DeleteIssueCommentDeprecated) | ||||
| 						}) | ||||
| 
 | ||||
| 						m.Group("/labels", func() { | ||||
|  |  | |||
|  | @ -168,7 +168,7 @@ func CreateIssueComment(ctx *context.APIContext, form api.CreateIssueCommentOpti | |||
| 
 | ||||
| // EditIssueComment modify a comment of an issue
 | ||||
| func EditIssueComment(ctx *context.APIContext, form api.EditIssueCommentOption) { | ||||
| 	// swagger:operation PATCH /repos/{owner}/{repo}/comments/{id} issue issueEditComment
 | ||||
| 	// swagger:operation PATCH /repos/{owner}/{repo}/issues/comments/{id} issue issueEditComment
 | ||||
| 	// ---
 | ||||
| 	// summary: Edit a comment
 | ||||
| 	// consumes:
 | ||||
|  | @ -198,6 +198,51 @@ func EditIssueComment(ctx *context.APIContext, form api.EditIssueCommentOption) | |||
| 	// responses:
 | ||||
| 	//   "200":
 | ||||
| 	//     "$ref": "#/responses/Comment"
 | ||||
| 	editIssueComment(ctx, form) | ||||
| } | ||||
| 
 | ||||
| // EditIssueCommentDeprecated modify a comment of an issue
 | ||||
| func EditIssueCommentDeprecated(ctx *context.APIContext, form api.EditIssueCommentOption) { | ||||
| 	// swagger:operation PATCH /repos/{owner}/{repo}/issues/{index}/comments/{id} issue issueEditCommentDeprecated
 | ||||
| 	// ---
 | ||||
| 	// summary: Edit a comment
 | ||||
| 	// deprecated: true
 | ||||
| 	// consumes:
 | ||||
| 	// - application/json
 | ||||
| 	// produces:
 | ||||
| 	// - application/json
 | ||||
| 	// parameters:
 | ||||
| 	// - name: owner
 | ||||
| 	//   in: path
 | ||||
| 	//   description: owner of the repo
 | ||||
| 	//   type: string
 | ||||
| 	//   required: true
 | ||||
| 	// - name: repo
 | ||||
| 	//   in: path
 | ||||
| 	//   description: name of the repo
 | ||||
| 	//   type: string
 | ||||
| 	//   required: true
 | ||||
| 	// - name: index
 | ||||
| 	//   in: path
 | ||||
| 	//   description: this parameter is ignored
 | ||||
| 	//   type: integer
 | ||||
| 	//   required: true
 | ||||
| 	// - name: id
 | ||||
| 	//   in: path
 | ||||
| 	//   description: id of the comment to edit
 | ||||
| 	//   type: integer
 | ||||
| 	//   required: true
 | ||||
| 	// - name: body
 | ||||
| 	//   in: body
 | ||||
| 	//   schema:
 | ||||
| 	//     "$ref": "#/definitions/EditIssueCommentOption"
 | ||||
| 	// responses:
 | ||||
| 	//   "200":
 | ||||
| 	//     "$ref": "#/responses/Comment"
 | ||||
| 	editIssueComment(ctx, form) | ||||
| } | ||||
| 
 | ||||
| func editIssueComment(ctx *context.APIContext, form api.EditIssueCommentOption) { | ||||
| 	comment, err := models.GetCommentByID(ctx.ParamsInt64(":id")) | ||||
| 	if err != nil { | ||||
| 		if models.IsErrCommentNotExist(err) { | ||||
|  | @ -226,7 +271,7 @@ func EditIssueComment(ctx *context.APIContext, form api.EditIssueCommentOption) | |||
| 
 | ||||
| // DeleteIssueComment delete a comment from an issue
 | ||||
| func DeleteIssueComment(ctx *context.APIContext) { | ||||
| 	// swagger:operation DELETE /repos/{owner}/{repo}/comments/{id} issue issueDeleteComment
 | ||||
| 	// swagger:operation DELETE /repos/{owner}/{repo}/issues/comments/{id} issue issueDeleteComment
 | ||||
| 	// ---
 | ||||
| 	// summary: Delete a comment
 | ||||
| 	// parameters:
 | ||||
|  | @ -248,6 +293,43 @@ func DeleteIssueComment(ctx *context.APIContext) { | |||
| 	// responses:
 | ||||
| 	//   "204":
 | ||||
| 	//     "$ref": "#/responses/empty"
 | ||||
| 	deleteIssueComment(ctx) | ||||
| } | ||||
| 
 | ||||
| // DeleteIssueCommentDeprecated delete a comment from an issue
 | ||||
| func DeleteIssueCommentDeprecated(ctx *context.APIContext) { | ||||
| 	// swagger:operation DELETE /repos/{owner}/{repo}/issues/{index}/comments/{id} issue issueDeleteCommentDeprecated
 | ||||
| 	// ---
 | ||||
| 	// summary: Delete a comment
 | ||||
| 	// deprecated: true
 | ||||
| 	// parameters:
 | ||||
| 	// - name: owner
 | ||||
| 	//   in: path
 | ||||
| 	//   description: owner of the repo
 | ||||
| 	//   type: string
 | ||||
| 	//   required: true
 | ||||
| 	// - name: repo
 | ||||
| 	//   in: path
 | ||||
| 	//   description: name of the repo
 | ||||
| 	//   type: string
 | ||||
| 	//   required: true
 | ||||
| 	// - name: index
 | ||||
| 	//   in: path
 | ||||
| 	//   description: this parameter is ignored
 | ||||
| 	//   type: integer
 | ||||
| 	//   required: true
 | ||||
| 	// - name: id
 | ||||
| 	//   in: path
 | ||||
| 	//   description: id of comment to delete
 | ||||
| 	//   type: integer
 | ||||
| 	//   required: true
 | ||||
| 	// responses:
 | ||||
| 	//   "204":
 | ||||
| 	//     "$ref": "#/responses/empty"
 | ||||
| 	deleteIssueComment(ctx) | ||||
| } | ||||
| 
 | ||||
| func deleteIssueComment(ctx *context.APIContext) { | ||||
| 	comment, err := models.GetCommentByID(ctx.ParamsInt64(":id")) | ||||
| 	if err != nil { | ||||
| 		if models.IsErrCommentNotExist(err) { | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue