# Routes Analyzing:
## General Routes
### /signup
* Method: Post
* Required Middleware: checkAuth
* Request Body: {email, username, password, phone}
* Response:
- **Success Response**:
* status code: 201
* respone json:
{
message: 'Create Account Successfully'
data: [
{
id,
email,
username,
phone
}
]
}
- **Error message**:
* status code:
- email exists 406,
- validation error: 400,
- server error: 500
* response json:
{
message: 'Couldn't Create Account,
data: null
}
### /login
* Method: Post
* Required Middleware: checkAuth
* Request Body: {email, password}
* Response:
- **Success Response**:
* status code: 200
* respone json:
{
message: 'Logged In Successfully'
data: [
{
id,
email,
username,
phone
}
]
}
- **Error message**:
* status code:
- wrong email or password 406,
- validation error: 400,
- server error: 500
* response json:
{
error: true,
message: "error message",
data: null
}
## Projects:
### /project/:id
* Method:GET
* Required Middleware: checkAuth, checkMember,
* Request Params: id "project id",
* Response:
* **Success Response**:
- response status: 200
- Request Query: project_id
- response json:
{
message: 'Project return Successfully',
data: [{id, title, description, created_at, members }]
}
* **Error Response**:
- status code:
- 401, unAuthurized,
- 500, server error
- response json:
{
message: 'error message',
data: null
}
### /projects
* Method:GET
* Required Middleware: checkAuth, checkMember,
* Request token: user_id,
* Response:
* **Success Response**:
- response status: 200
- response json:
{
message: 'Show Projects Successfully',
data: [{id, title, description, created_at, project_id, user_id, role }]
}
* **Error Response**:
- status code:
- 401, unAuthurized,
- 403, forbidden member do not exist on the project,
- 500, server error
- response json:
{
message: 'Failed In Show Projects',
data: null
}
### /projects
* Method:POST
* Required Middleware: checkAuth,
* Request token: user_id,
* Requset Body : {title, description}
* Response:
* **Success Response**:
- response status: 201
- response json:
{
message: 'New Project added Successfully',
data: [{id, title, description, created_at }]
}
* **Error Response**:
- status code:
- 401, user not exist **unAuthorized**?
- 400, validation error
- 500, server error
- response json:
{
message: 'Failed to create Project',
data: null
}
### /project/:id
* Method: DELETE,
* Required Middleware: checkAuth, chackManager
* Request token: user_id
* Request Params: id "project_id"
* Response:
* **Success Response**:
- response status: 203
- response json:
{
message: 'Deleted Project Successfully',
data: [{id, title, description}]
}
* **Error Response**:
- status code:
- 401, unAuthurized,
- 403, forbidden member do not exist on the project,
- 500, server error
- response json:
{
message: 'Failed In Delete Projects',
data: null
}
## Tasks:
### /task
* Method: POST,
* Required Middleware: checkAuth, checkManager
* Request Body: { title, description, project_id, section_id, due_date, priority_id }
* Response:
* **Success Response**:
- response status: 201
- response json:
{
message: 'Task Created Successfully',
data: [
{id, title, description, priority_id, project_id, section_id, due_date}
]
}
* **Error Response**:
- status code:
- 401, unAuthurized,
- 403, forbidden not a member of the project,
- 500, server error
- response json:
{
message: 'Failed In Show Tasks',
data: null
}
### /tasks
* Method: GET,
* Required Middleware: checkAuth
* Request token: user_id
* Response:
* **Success Response**:
- response status: 200
- request query: user_id
- response json:
{
message: 'User Tasks returned Successfully',
data: [
{id, title, description, priority_id, project_id, section_id, due_date}
]
}
* **Error Response**:
- status code:
- 401, unAuthurized,
- 500, server error
- response json:
{
message: 'error message',
data: null
}
### /tasks/:id?section_id=1
* Method: GET,
* Required Middleware: checkAuth, checkMember
* Request Query: section_id
* Request Params: id "project_id"
* Response:
* **Success Response**:
- response status: 200
- response json:
{
message: 'Fetch tasks Successfully',
data: [
{id, title, description, priority_id, project_id, section_id, due_date}
]
}
* **Error Response**:
- status code:
- 401, unAuthurized,
- 403, forbidden not a member of the project,
- 404, page not found,
- 500, server error
- response json:
{
message: 'error message',
data: null
}
### /tasks/:id
* Method: PUT
* Required Middleware: checkauth, checkManager
* Request Params: id "task_id",
* Request Body: {title, description, assignee, due_date, section_id, priroty_id}
* Response:
- **Success Response:**
- status code: 200,
- response json:
{
message: 'Task updated successfully',
data:[
{id, title, description, priority_id, project_id, section_id, due_date}
]
}
- **Error Response:**
- status code:
- 401, unAuthorized ,
- 403, forbidden not the project manager,
- 404, page not found,
- 500, server error
- response json:
{
message: error message,
data: null
}
### /members/:id
* Method: GET,
* Required Middleware: checkAuth, checkMember
* Request Params: id "project_id"
* Request token: user_id
* Response:
- **Success Response:**
- status code: 200,
- response json:
{
message:'Fetch project's members successfully'
data:[{id, username, email, phone}]
}
- **Error Response:**
- status code:
- 401, unAuthorized ,
- 403, forbidden not a member on the project,
- 404, page not found,
- 500, server error
- response json:
{
message: error message,
data: null
}
### /task/:id
* Method: DELETE
* Required Middleware: checkAuth, checkManager
* Request Params: task_id
* Request token: user_id
* Response:
- **Success Response:**
- status code: 203,
- Request Query: task_id, user_id
- response json:
{
message: 'Task Deleted successfully',
data:[
{id, title, description, priority_id, project_id, section_id, due_date}
]
}
- **Error Response:**
- status code:
- 401, unAuthorized ,
- 403, Not A Manager,
- 500, server error
- response json:
{
message: error message,
data: null
}
### /sections
* Method: GET,
* Required Middleware: checkAuth,
* Request Query: none
* Response:
- **Success Response:**
- status code: 200,
- response json:
{
message: 'Fetch sections Successfully',
data:[{id, section},{},{}]
}
- **Error Response:**
- status code:
- 401, unAuthorized,
- 500, server error,
- response json:
{
message: error message,
data: null
}
## Attachment:
### /attachment/:id
* Method: GET,
* Required Middleware: checkAuth, checkMember,
* Request Params: id "project_id"
* Response:
- **Success Response:**
- status code: 200,
- response json:
{
message: 'Fetch attchement successfully',
data: [{id, path, task_id}]
}
- **Error Response:**
- status code:
- 401, unAuthurized,
- 403, member doesn't exist on project,
- 500, server error,
- response json:
{
message: 'error message',
data: null
}
### /attachment/:id
* Method: POST,
* Required Middleware: checkAuth, checkMember
* Request Params: task_id
* request token: user_id
* Request Body: attachS3
* Response:
- **Success Response:**
- status code: 201,
- response json:
{
message: 'add attchement successfully',
data: [{id, attachS3}]
}
- **Error Response:**
- status code:
- 401, unAuthurized,
- 403, member doesn't exist on project,
- 500, server error,
- response json:
{
message: 'error message',
data: null
}