# 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 }