API Routes
User/Authentication
Sign Up
Request
{
"email": "email@address.com",
"username": "AnyUniqueString",
"password": "unhashed-password",
"profilePicture": "image_url.png",
"theme": "light or dark",
}
Successful Response
- Status Code: 201
- Headers: Content-type: application/json
- Body:
{
"id": 1,
"email": "email@address.com",
"username": "AnyUniqueString",
"profilePicture": "image_url.png",
"theme": "light or dark",
"createdAt": "12-25-2022 00:00:00 GMT"
}
Error Response
- Status Code: 401
- Headers: Content-type: application/json
- Body:
{
"errors":["Username is required","Invalid email address","Username already exists","Email already exists"]
}
Log In
Request
{
"credential": "email or username",
"password": "unhashed-password"
}
Successful Response
- Status Code: 201
- Headers: Content-type: application/json
- Body:
{
"id": 1,
"email": "email@address.com",
"username": "AnyUniqueString",
"profilePicture": "image_url.png",
"theme": "light or dark",
"createdAt": "12-25-2022 00:00:00 GMT",
"openSessions": [ {"SessionObject1"}, {"SessionObject2"} ]
}
Error Response
- Status Code: 401
- Headers: Content-type: application/json
- Body:
{
"errors":["Could not find user with provided credentials."]
}
Log Out
Request
Successful Response
- Status Code: 201
- Headers: Content-type: application/json
- Body:
{
"message": "Successfully Logged Out",
"status": 201
}
Get Details of a User by User ID
Request
Successful Response
- Status Code: 200
- Headers: Content-type: application/json
- Body:
{
"id": 1,
"email": "email@address.com",
"username": "AnyUniqueString",
"profilePicture": "image_url.png",
"createdAt": "12-25-2022 00:00:00 GMT",
"totalPuzzlesSolved": 4
}
Error Response
- Status Code: 404
- Headers: Content-type: application/json
- Body:
{
"errors":["Could not find user"]
}
Update User Information
Request
{
"email": "updated_email@address.com",
"username": "updated_username",
"profilePicture": "updated_image_url.png"
}
Successful Response
- Status Code: 201
- Headers: Content-type: application/json
- Body:
{
"id": 1,
"email": "updated_email@address.com",
"username": "updated_username",
"profilePicture": "updated_image_url.png",
"theme": "light or dark",
"createdAt": "12-25-2022 00:00:00 GMT"
}
Error Response
- Status Code: 401
- Headers: Content-type: application/json
- Body:
{
"errors":["Username is required","Invalid email address","Username already exists","Email already exists"]
}
Word-gon
Get Word-Gon Puzzle Details
Request
Successful Response
- Status Code: 200
- Headers: Content-type: application/json
- Body:
{
"id": 1,
"userId": 1,
"letters": "abcdefghijkl",
"shape": "square or trapezoid or pentagon",
"num_attempts": 6,
"puzzle_day": "null or DD-MM-YYYY",
"user": {"userObj"}
}
Error Response
- Status Code: 404
- Headers: Content-type: application/json
- Body:
{
"errors":["Puzzle not found"]
}
Word-Gon Session
Start a Word-Gon Puzzle
Request
{
"userId": 1,
"puzzleId": 1
}
Successful Response
- Status Code: 201
- Headers: Content-type: application/json
- Body:
{
"id": 1,
"userId": 1,
"puzzleId": 1,
"guesses": "",
"num_guesses": 0,
"completed": false
}
Error Response
- Status Code: 404
- Headers: Content-type: application/json
- Body:
{
"errors":["Could not find puzzle"]
}
Get the open sessions of the current user
Request
Successful Response
- Status Code: 200
- Headers: Content-type: application/json
- Body:
{
{
"id": 1,
"userId": 1,
"puzzleId": 1,
"guesses": "comma,separated,guesses",
"num_guesses": 3,
"completed": false
}
}
Update guesses on a session
Request
{
"guesses": "comma,separated,guesses,add,more,guesses",
"num_guesses": 6,
"completed": false
}
Successful Response
- Status Code: 201
- Headers: Content-type: application/json
- Body:
{
"id": 1,
"userId": 1,
"puzzleId": 1,
"guesses": "comma,separated,guesses,add,more,guesses",
"num_guesses": 6,
"completed": false
}
Delete a session
Request
Successful Response
- Status Code: 201
- Headers: Content-type: application/json
- Body:
{
"message": "Successfully Deleted",
"status": 201
}
Comments
Get comments by puzzle ID
Request
Successful Response
- Status Code: 201
- Headers: Content-type: application/json
- Body:
{
"comments": [
{
"id": 1,
"puzzleId": 1,
"userId": 1,
"body": "long string",
"replyTo": "commentId",
"createdAt": "12-25-2022 00:00:00 GMT",
"user":{
"id":1,
"username": "username",
"profilePicture": "image_url.png"
}
},
{
"id": 2,
"puzzleId": 1,
"userId": 1,
"body": "another long string",
"replyTo": "null",
"createdAt": "12-25-2022 00:00:00 GMT",
"user":{
"id":1,
"username": "username",
"profilePicture": "image_url.png"
}
}
]
}
Error Response
- Status Code: 404
- Headers: Content-type: application/json
- Body:
{
"errors":["Could not find puzzle"]
}
Write a comment/reply
Request
{
"body": "long string",
"replyTo": "commentId",
}
Successful Response
- Status Code: 201
- Headers: Content-type: application/json
- Body:
{
"id": 1,
"puzzleId": 1,
"userId": 1,
"body": "long string",
"replyTo": "commentId",
"createdAt": "12-25-2022 00:00:00 GMT",
"user":{
"id":1,
"username": "username",
"profilePicture": "image_url.png"
}
}
Error Response
- Status Code: 404
- Headers: Content-type: application/json
- Body:
{
"errors":["Could not find puzzle"]
}
Edit a comment
Request
{
"body": "editted string"
}
Error Response
- Status Code: 404
- Headers: Content-type: application/json
- Body:
{
"errors":["Could not find comment"]
}
Successful Response
- Status Code: 201
- Headers: Content-type: application/json
- Body:
{
"id": 1,
"puzzleId": 1,
"userId": 1,
"body": "editted string",
"replyTo": "commentId",
"createdAt": "12-25-2022 00:00:00 GMT",
"user":{
"id":1,
"username": "username",
"profilePicture": "image_url.png"
}
}
Delete a comment
Request
Successful Response
- Status Code: 201
- Headers: Content-type: application/json
- Body:
{
"message": "Successfully deleted",
"status": 201
}
Error Response
- Status Code: 404
- Headers: Content-type: application/json
- Body:
{
"errors":["Could not find comment"]
}
Words
Check Word Validity
Request
Successful Response
- Status Code: 200
- Headers: Content-type: application/json
- Body:
{
"word":"apple",
}
Error Response
- Status Code: 404
- Headers: Content-type: application/json
- Body:
{
"errors":["Word not found"]
}