A simple API made for Matchmade assessment:
POST /register
Headers
Key | Value |
---|---|
- | - |
Request Body
Key | Type | Description |
---|---|---|
fullname |
string |
Required. User's fullname |
username |
string |
Required. User's username (unique) |
password |
string |
Required. User's password (min. 8 chars, special characters) |
email |
string |
Required. User's email (unique) |
Response
{
"status": 201
"data": {
"fullname": <NAME>
"username": <USERNAME>
"email": <EMAIL>
}
"message": "Successfully registered user"
}
POST /login
Headers
Key | Value |
---|---|
- | - |
Request Body
Key | Type | Description |
---|---|---|
username |
string |
Required if email empty. User's username |
password |
string |
Required. User's password |
email |
string |
Required if username empty. User's email |
Response
{
"status": 200
"data": {
"fullname": <NAME>
"username": <USERNAME>
"email": <EMAIL>
}
"message": "Successfully logged in user"
}
GET /user
Headers:
Key | Value |
---|---|
Authorization |
Bearer <token> |
Request Body
- None
Response
{
"status": 200
"data": {
"fullname": <NAME>,
"username": <USERNAME>
"email": <EMAIL>
}
"message": "Successfully get user profile"
}
PUT /user
Headers:
Key | Value |
---|---|
Authorization |
Bearer <token> |
Request Body
Key | Type | Description |
---|---|---|
fullname |
string |
User's fullname (optional) |
username |
string |
User's username (optional) |
email |
string |
User's email (optional) |
Response
{
"status": 200
"data": {
"fullname": <NAME>,
"username": <USERNAME>
"email": <EMAIL>
}
"message": "Successfully updated user profile"
}
DELETE /user
Headers:
Key | Value |
---|---|
Authorization |
Bearer <token> |
Request Body
- None
Response
{
"status": 204
"data": {}
"message": "Successfully deleted user profile"
}
GET /tasks
Headers:
Key | Value |
---|---|
Authorization |
Bearer <token> |
Request Body
- None
Response
{
"status": 200
"data": [
{
"id": <ID>
"title": <TITLE>
"description": <DESCRIPTION>
"due_date": <DUEDATE_RFC3339>
"completion_status": <COMPLETIONSTATUS>
"created_at": <CREATEDAT>
"updated_at": <UPDATEDAT>
},
{
"id": <ID>
"title": <TITLE>
"description": <DESCRIPTION>
"due_date": <DUEDATE_RFC3339>
"completion_status": <COMPLETIONSTATUS>
"created_at": <CREATEDAT>
"updated_at": <UPDATEDAT>
},
...
]
"message": "Successfully get user's to-do list"
}
GET /tasks/${id}
Headers:
Key | Value |
---|---|
Authorization |
Bearer <token> |
Request Body
- None
Response
{
"status": 200
"data": {
"id": <ID>
"title": <TITLE>
"description": <DESCRIPTION>
"due_date": <DUEDATE_RFC3339>
"completion_status": <COMPLETIONSTATUS>
"created_at": <CREATEDAT>
"updated_at": <UPDATEDAT>
}
"message": "Successfully get to-do"
}
POST /tasks
Headers:
Key | Value |
---|---|
Authorization |
Bearer <token> |
Request Body
Key | Type | Description |
---|---|---|
title |
string |
Required. Title of task |
description |
string |
Required. Description of task |
due_date |
string |
Required. Due date of task |
Response
{
"status": 201
"data": {
"id": <ID>
"title": <TITLE>
"description": <DESCRIPTION>
"due_date": <DUEDATE_RFC3339>
"completion_status": <COMPLETIONSTATUS>
"created_at": <CREATEDAT>
"updated_at": <UPDATEDAT>
}
"message": "Successfully update to-do"
}
PUT /tasks/${id}
Headers:
Key | Value |
---|---|
Authorization |
Bearer <token> |
Request Body
Key | Type | Description |
---|---|---|
title |
string |
Title of task (optional) |
description |
string |
Description of task (optional) |
due_date |
string |
Due date of task (optional) |
completion_status |
string |
Completion status of task (optional) |
Response
{
"status": 200
"data": {
"id": <ID>
"title": <TITLE>
"description": <DESCRIPTION>
"due_date": <DUEDATE_RFC3339>
"completion_status": <COMPLETIONSTATUS>
"created_at": <CREATEDAT>
"updated_at": <UPDATEDAT>
}
"message": "Successfully update to-do"
}
DELETE /tasks/${id}
Headers:
Key | Value |
---|---|
Authorization |
Bearer <token> |
Request Body
- None
Response
{
"status": 204
"data": {}
"message": "Successfully deleted to-do"
}