Skip to content

Commit

Permalink
docs: specify RFC 7807 Problem Details response types [skip ci]
Browse files Browse the repository at this point in the history
  • Loading branch information
undrcrxwn committed Mar 22, 2024
1 parent 433d979 commit 98cc142
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 33 deletions.
15 changes: 0 additions & 15 deletions src/CrowdParlay.Social.Api/ValidationProblemDTOs.cs

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ public class AuthorsController(IAuthorRepository authors) : ControllerBase
[HttpGet("{authorId:guid}")]
[Consumes(MediaTypeNames.Application.Json), Produces(MediaTypeNames.Application.Json)]
[ProducesResponseType(typeof(AuthorDto), (int)HttpStatusCode.OK)]
[ProducesResponseType(typeof(Problem), (int)HttpStatusCode.InternalServerError)]
[ProducesResponseType(typeof(Problem), (int)HttpStatusCode.NotFound)]
[ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.InternalServerError)]
[ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.NotFound)]
public async Task<AuthorDto> GetAuthorById([FromRoute] Guid authorId) =>
await authors.GetByIdAsync(authorId);
}
28 changes: 14 additions & 14 deletions src/CrowdParlay.Social.Api/v1/Controllers/CommentsController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ public class CommentsController(ICommentRepository comments, IHubContext<Comment
[HttpGet("{commentId:guid}")]
[Consumes(MediaTypeNames.Application.Json), Produces(MediaTypeNames.Application.Json)]
[ProducesResponseType(typeof(CommentDto), (int)HttpStatusCode.OK)]
[ProducesResponseType(typeof(Problem), (int)HttpStatusCode.InternalServerError)]
[ProducesResponseType(typeof(Problem), (int)HttpStatusCode.NotFound)]
[ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.InternalServerError)]
[ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.NotFound)]
public async Task<CommentDto> GetCommentById([FromRoute] Guid commentId) =>
await comments.GetByIdAsync(commentId);

Expand All @@ -33,8 +33,8 @@ public async Task<CommentDto> GetCommentById([FromRoute] Guid commentId) =>
[HttpGet]
[Consumes(MediaTypeNames.Application.Json), Produces(MediaTypeNames.Application.Json)]
[ProducesResponseType(typeof(Page<CommentDto>), (int)HttpStatusCode.OK)]
[ProducesResponseType(typeof(Problem), (int)HttpStatusCode.InternalServerError)]
[ProducesResponseType(typeof(ValidationProblem), (int)HttpStatusCode.BadRequest)]
[ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.InternalServerError)]
[ProducesResponseType(typeof(ValidationProblemDetails), (int)HttpStatusCode.BadRequest)]
public async Task<Page<CommentDto>> SearchComments(
[FromQuery] Guid? discussionId,
[FromQuery] Guid? authorId,
Expand All @@ -48,9 +48,9 @@ public async Task<Page<CommentDto>> SearchComments(
[HttpPost, Authorize]
[Consumes(MediaTypeNames.Application.Json), Produces(MediaTypeNames.Application.Json)]
[ProducesResponseType(typeof(CommentDto), (int)HttpStatusCode.Created)]
[ProducesResponseType(typeof(Problem), (int)HttpStatusCode.InternalServerError)]
[ProducesResponseType(typeof(ValidationProblem), (int)HttpStatusCode.BadRequest)]
[ProducesResponseType(typeof(Problem), (int)HttpStatusCode.Forbidden)]
[ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.InternalServerError)]
[ProducesResponseType(typeof(ValidationProblemDetails), (int)HttpStatusCode.BadRequest)]
[ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.Forbidden)]
public async Task<ActionResult<CommentDto>> Create([FromBody] CommentRequest request)
{
var authorId =
Expand All @@ -72,9 +72,9 @@ public async Task<ActionResult<CommentDto>> Create([FromBody] CommentRequest req
[HttpGet("{parentCommentId:guid}/replies")]
[Consumes(MediaTypeNames.Application.Json), Produces(MediaTypeNames.Application.Json)]
[ProducesResponseType(typeof(Page<CommentDto>), (int)HttpStatusCode.OK)]
[ProducesResponseType(typeof(Problem), (int)HttpStatusCode.InternalServerError)]
[ProducesResponseType(typeof(ValidationProblem), (int)HttpStatusCode.BadRequest)]
[ProducesResponseType(typeof(Problem), (int)HttpStatusCode.NotFound)]
[ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.InternalServerError)]
[ProducesResponseType(typeof(ValidationProblemDetails), (int)HttpStatusCode.BadRequest)]
[ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.NotFound)]
public async Task<Page<CommentDto>> GetRepliesToComment(
[FromRoute] Guid parentCommentId,
[FromQuery, BindRequired] int offset,
Expand All @@ -87,10 +87,10 @@ public async Task<Page<CommentDto>> GetRepliesToComment(
[HttpPost("{parentCommentId:guid}/replies"), Authorize]
[Consumes(MediaTypeNames.Application.Json), Produces(MediaTypeNames.Application.Json)]
[ProducesResponseType(typeof(CommentDto), (int)HttpStatusCode.Created)]
[ProducesResponseType(typeof(Problem), (int)HttpStatusCode.InternalServerError)]
[ProducesResponseType(typeof(ValidationProblem), (int)HttpStatusCode.BadRequest)]
[ProducesResponseType(typeof(Problem), (int)HttpStatusCode.Forbidden)]
[ProducesResponseType(typeof(Problem), (int)HttpStatusCode.NotFound)]
[ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.InternalServerError)]
[ProducesResponseType(typeof(ValidationProblemDetails), (int)HttpStatusCode.BadRequest)]
[ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.Forbidden)]
[ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.NotFound)]
public async Task<ActionResult<CommentDto>> ReplyToComment([FromRoute] Guid parentCommentId, [FromBody] ReplyRequest request)
{
var authorId =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class DiscussionsController(IDiscussionRepository discussions) : Controll
[HttpGet("{discussionId:guid}")]
[Consumes(MediaTypeNames.Application.Json), Produces(MediaTypeNames.Application.Json)]
[ProducesResponseType(typeof(DiscussionDto), (int)HttpStatusCode.OK)]
[ProducesResponseType(typeof(Problem), (int)HttpStatusCode.NotFound)]
[ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.NotFound)]
public async Task<DiscussionDto> GetDiscussionById([FromRoute] Guid discussionId) =>
await discussions.GetByIdAsync(discussionId);

Expand All @@ -39,7 +39,7 @@ public async Task<IEnumerable<DiscussionDto>> GetDiscussions([FromQuery] Guid? a
[HttpPost, Authorize]
[Consumes(MediaTypeNames.Application.Json), Produces(MediaTypeNames.Application.Json)]
[ProducesResponseType(typeof(DiscussionDto), (int)HttpStatusCode.Created)]
[ProducesResponseType(typeof(Problem), (int)HttpStatusCode.Forbidden)]
[ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.Forbidden)]
public async Task<ActionResult<DiscussionDto>> CreateDiscussion([FromBody] DiscussionRequest request)
{
var authorId =
Expand Down

0 comments on commit 98cc142

Please sign in to comment.