|
|
|
@ -107,6 +107,8 @@ paths:
|
|
|
|
|
content:
|
|
|
|
|
application/json:
|
|
|
|
|
schema:
|
|
|
|
|
type: array
|
|
|
|
|
items:
|
|
|
|
|
$ref: '#/components/schemas/Post'
|
|
|
|
|
400:
|
|
|
|
|
$ref: '#/components/responses/MalformedBody'
|
|
|
|
@ -115,6 +117,30 @@ paths:
|
|
|
|
|
500:
|
|
|
|
|
$ref: '#/components/responses/ServerError'
|
|
|
|
|
|
|
|
|
|
/users/{username}/comments:
|
|
|
|
|
get:
|
|
|
|
|
tags:
|
|
|
|
|
- User Endpoints
|
|
|
|
|
- Comments Endpoints
|
|
|
|
|
summary: Get the list of comments a user has submitted.
|
|
|
|
|
requestBody:
|
|
|
|
|
$ref: '#/components/requestBodies/Listing'
|
|
|
|
|
responses:
|
|
|
|
|
200:
|
|
|
|
|
description: A list of comments filtered and formatted.
|
|
|
|
|
content:
|
|
|
|
|
application/json:
|
|
|
|
|
schema:
|
|
|
|
|
type: array
|
|
|
|
|
items:
|
|
|
|
|
$ref: '#/components/schemas/Comment'
|
|
|
|
|
400:
|
|
|
|
|
$ref: '#/components/responses/MalformedBody'
|
|
|
|
|
422:
|
|
|
|
|
$ref: '#/components/responses/Unprocessable'
|
|
|
|
|
500:
|
|
|
|
|
$ref: '#/components/responses/ServerError'
|
|
|
|
|
|
|
|
|
|
components:
|
|
|
|
|
requestBodies:
|
|
|
|
|
AuthCredentials:
|
|
|
|
@ -129,11 +155,11 @@ components:
|
|
|
|
|
type: object
|
|
|
|
|
properties:
|
|
|
|
|
username:
|
|
|
|
|
type: string
|
|
|
|
|
description: The username of the user.
|
|
|
|
|
password:
|
|
|
|
|
type: string
|
|
|
|
|
password:
|
|
|
|
|
description: The password of the user.
|
|
|
|
|
type: string
|
|
|
|
|
TokenRequest:
|
|
|
|
|
description: The access token to identify a user.
|
|
|
|
|
content:
|
|
|
|
@ -143,8 +169,8 @@ components:
|
|
|
|
|
- token
|
|
|
|
|
properties:
|
|
|
|
|
token:
|
|
|
|
|
type: string
|
|
|
|
|
description: The access token.
|
|
|
|
|
type: string
|
|
|
|
|
Listing:
|
|
|
|
|
description: Query particular data sorted by date and time.
|
|
|
|
|
content:
|
|
|
|
@ -206,15 +232,15 @@ components:
|
|
|
|
|
- password
|
|
|
|
|
properties:
|
|
|
|
|
username:
|
|
|
|
|
description: A Unique uusername to identify a user around the website.
|
|
|
|
|
type: string
|
|
|
|
|
minLength: 3
|
|
|
|
|
maxLength: 16
|
|
|
|
|
pattern: "[a-zA-Z0-9 ]{3,16}"
|
|
|
|
|
description: A Unique uusername to identify a user around the website.
|
|
|
|
|
email:
|
|
|
|
|
description: A Unique email used for communication/further identification.
|
|
|
|
|
type: string
|
|
|
|
|
format: email
|
|
|
|
|
description: A Unique email used for communication/further identification.
|
|
|
|
|
password:
|
|
|
|
|
type: string
|
|
|
|
|
format: password
|
|
|
|
@ -233,17 +259,76 @@ components:
|
|
|
|
|
type: object
|
|
|
|
|
properties:
|
|
|
|
|
token:
|
|
|
|
|
description: The access token value.
|
|
|
|
|
type: string
|
|
|
|
|
description: The access token value
|
|
|
|
|
Post:
|
|
|
|
|
type: object
|
|
|
|
|
required:
|
|
|
|
|
- id
|
|
|
|
|
- user_id
|
|
|
|
|
- title
|
|
|
|
|
- description
|
|
|
|
|
- upvotes
|
|
|
|
|
- downvotes
|
|
|
|
|
- date_created
|
|
|
|
|
properties:
|
|
|
|
|
id:
|
|
|
|
|
description: The unique ID of a post.
|
|
|
|
|
type: string
|
|
|
|
|
user_id:
|
|
|
|
|
description: The ID of the user who created the post.
|
|
|
|
|
type: string
|
|
|
|
|
title:
|
|
|
|
|
description: The main title of a post.
|
|
|
|
|
type: string
|
|
|
|
|
description:
|
|
|
|
|
description: The body text of a post, optional.
|
|
|
|
|
type: string
|
|
|
|
|
upvotes:
|
|
|
|
|
description: The number of upvotes a post has.
|
|
|
|
|
type: integer
|
|
|
|
|
downvotes:
|
|
|
|
|
description: The number of downvotes a post has.
|
|
|
|
|
type: integer
|
|
|
|
|
date_created:
|
|
|
|
|
description: The time at which this post was submitted.
|
|
|
|
|
type: string
|
|
|
|
|
format: 'date-time'
|
|
|
|
|
Comment:
|
|
|
|
|
type: object
|
|
|
|
|
required:
|
|
|
|
|
- id
|
|
|
|
|
- user_id
|
|
|
|
|
- post_id
|
|
|
|
|
- content
|
|
|
|
|
- upvotes
|
|
|
|
|
- downvotes
|
|
|
|
|
- date_created
|
|
|
|
|
properties:
|
|
|
|
|
id:
|
|
|
|
|
description: The unique ID of a comment.
|
|
|
|
|
type: string
|
|
|
|
|
user_id:
|
|
|
|
|
description: The ID of the user who posted the comment.
|
|
|
|
|
type: string
|
|
|
|
|
post_id:
|
|
|
|
|
description: The ID of the post this comment is created under.
|
|
|
|
|
type: string
|
|
|
|
|
parent_id:
|
|
|
|
|
description: The ID of the parent comment this comment is created to, if not provided, a top-level comment.
|
|
|
|
|
type: string
|
|
|
|
|
content:
|
|
|
|
|
description: The content/message of a comment.
|
|
|
|
|
type: string
|
|
|
|
|
upvotes:
|
|
|
|
|
description: The number of upvotes a comment has.
|
|
|
|
|
type: integer
|
|
|
|
|
downvotes:
|
|
|
|
|
description: The number of downvotes a comment has.
|
|
|
|
|
type: integer
|
|
|
|
|
date_created:
|
|
|
|
|
description: The time at which this comment was submitted.
|
|
|
|
|
type: string
|
|
|
|
|
format: 'date-time'
|
|
|
|
|
Error:
|
|
|
|
|
required:
|
|
|
|
|
- reason
|
|
|
|
@ -251,32 +336,34 @@ components:
|
|
|
|
|
type: object
|
|
|
|
|
properties:
|
|
|
|
|
reason:
|
|
|
|
|
type: string
|
|
|
|
|
description: The cause of the error message
|
|
|
|
|
type: string
|
|
|
|
|
code:
|
|
|
|
|
type: integer
|
|
|
|
|
description: The HTTP error code value accompanying the error.
|
|
|
|
|
type: integer
|
|
|
|
|
Listing:
|
|
|
|
|
type: object
|
|
|
|
|
properties:
|
|
|
|
|
after:
|
|
|
|
|
description: Filter items to only return those after this date and time.
|
|
|
|
|
type: string
|
|
|
|
|
format: 'date-time'
|
|
|
|
|
description: Filter items to only return those after this date and time.
|
|
|
|
|
default: 2020-01-01T00:00:00.000z
|
|
|
|
|
before:
|
|
|
|
|
description: Filter items to only return those before this date and time.
|
|
|
|
|
type: string
|
|
|
|
|
format: 'date-time'
|
|
|
|
|
description: Filter items to only return those before this date and time.
|
|
|
|
|
default: 2030-01-01T00:00:00.000z
|
|
|
|
|
count:
|
|
|
|
|
type: integer
|
|
|
|
|
description: The number of items already seen in this listing. Items will always be sorted by newest first.
|
|
|
|
|
type: integer
|
|
|
|
|
minimum: 0
|
|
|
|
|
default: 0
|
|
|
|
|
limit:
|
|
|
|
|
description: The maximum number of items to provide. Can be used in conjunction with 'count' to paginate.
|
|
|
|
|
type: integer
|
|
|
|
|
maximum: 100
|
|
|
|
|
description: The maximum number of items to provide. Can be used in conjunction with 'count' to paginate.
|
|
|
|
|
minimum: 0
|
|
|
|
|
default: 10
|
|
|
|
|
example:
|
|
|
|
|
after: 2020-01-01T00:00:00.000z
|
|
|
|
|