From 0c8475194348eac9524a770405e34dae608564ef Mon Sep 17 00:00:00 2001 From: adhamhaddad Date: Wed, 26 Apr 2023 08:43:24 +0200 Subject: [PATCH] added API readme file --- API.md | 154 ++++++++++++++++++++++++++++++ src/utils/token/setAccessToken.ts | 1 - 2 files changed, 154 insertions(+), 1 deletion(-) create mode 100644 API.md diff --git a/API.md b/API.md new file mode 100644 index 0000000..e8d3d94 --- /dev/null +++ b/API.md @@ -0,0 +1,154 @@ +# Routes + +## POST /auth/register + +Creates a new user. + +### Request Body + +The request body should be a JSON object with the following properties: + +```json +{ + "first_name": "Adham", + "last_name": "Haddad", + "username": "adhamhaddad", + "email": "adhamhaddad.dev@gmail.com", + "password": "secret-password" +} +``` + +### Response + +If the user is successfully created, the server will respond with a status code of 201 and a JSON object representing the new user: + +```json +{ + "id": 1, + "first_name": "Adham", + "last_name": "Haddad", + "username": "adhamhaddad", + "email": "adhamhaddad.dev@gmail.com" +} +``` + +## POST /auth/login + +Authenticate user. + +### Request Body + +The request body should be a JSON object with the following properties: + +```json +{ + "email": "adhamhaddad.dev@gmail.com", + "password": "secret-password" +} +``` + +### Response + +If the user is exists and authenticated successfully, the server will respond with a status code of 200 and a JSON object representing the authenticated user: + +```json +{ + "user": { + "id": 1, + "first_name": "Adham", + "last_name": "Haddad", + "username": "adhamhaddad", + "email": "adhamhaddad.dev@gmail.com", + }, + "accessToken": "" +} +``` + +## POST /auth/refresh-token + +Refresh the access and refresh tokens. + +### Request Headers + +The request headers should have a Cookies with the following properties: + +```json + refreshToken="" +``` + +### Response + +If the refresh token is exists in redis and valid, the server will respond with a status code of 200 and a JSON object representing a new tokens: + +```json +{ + "accessToken": "", +} +``` + +## GET /users/:userId + +Get a user by id. + +### Request Headers + +The request headers should have a Cookies with the following properties: + +```json + accessToken="" + refreshToken="" +``` + +### Response + +If the user is exists, the server will respond with a status code of 200 and a JSON object representing the received user: + +```json +{ + "id": 1, + "first_name": "Adham", + "last_name": "Haddad", + "username": "adhamhaddad", + "email": "adhamhaddad.dev@gmail.com" +} +``` + +## PATCH /users/:userId + +Get a user by id. + +### Request Headers + +The request headers should have a Cookies with the following properties: + +```json + accessToken="" + refreshToken="" +``` + +### Request Body + +The request body should be a JSON object with the following properties: + +```json +{ + "first_name": "Adham", + "last_name": "Ashraf", + "username": "adhamhaddad", + "email": "adhamhaddad.dev@gmail.com" +} +``` + +### Response + +If the user is exists and updated, the server will respond with a status code of 204 and a JSON object representing the received user: + +```json +{ + "id": 1, + "first_name": "Adham", + "last_name": "Ashraf", + "username": "adhamhaddad", + "email": "adhamhaddad.dev@gmail.com" +} +``` diff --git a/src/utils/token/setAccessToken.ts b/src/utils/token/setAccessToken.ts index 4ffef8b..33711f8 100644 --- a/src/utils/token/setAccessToken.ts +++ b/src/utils/token/setAccessToken.ts @@ -32,7 +32,6 @@ export const setAccessToken = async (payload: Payload): Promise => { }); return token; } catch (err) { - console.log((err as Error).message); throw new Error('Failed to sign JWT'); } finally { await redisClient.disconnect();