diff --git a/frontend-next/.eslintrc.json b/frontend-next/.eslintrc.json index bffb357..2ce61b4 100644 --- a/frontend-next/.eslintrc.json +++ b/frontend-next/.eslintrc.json @@ -1,3 +1,8 @@ { - "extends": "next/core-web-vitals" + "extends": "next/core-web-vitals", + "rules": { + "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }], + "jsx-a11y/alt-text": "off", + "@next/next/no-img-element": "off" + } } diff --git a/frontend-next/src/app/api/README.md b/frontend-next/src/app/api/README.md new file mode 100644 index 0000000..f788cf8 --- /dev/null +++ b/frontend-next/src/app/api/README.md @@ -0,0 +1,10 @@ +## API Reference for ChatMaps + +Base URL: https://chatma.ps/api +|Endpoint|Methods|Documentation for Endpoint +|--------|-------|--------------------------| +|/login|POST, GET|[README.md](./onboard/README.md) +|/register|POST|[README.md](./register/README.md) +|/signout|GET|[README.md](./signout/README.md) +|/user|GET|[README.md](./user/README.md) +|/onboard|POST|[README.md](./onboard/README.md) diff --git a/frontend-next/src/app/api/firebase-admin.js b/frontend-next/src/app/api/firebase-admin.js index 1317eab..24223c4 100644 --- a/frontend-next/src/app/api/firebase-admin.js +++ b/frontend-next/src/app/api/firebase-admin.js @@ -1,4 +1,4 @@ -import { initializeApp, getApps, cert } from "firebase-admin/app"; +import { initializeApp, getApps } from "firebase-admin/app"; import admin from "firebase-admin"; export function customInitApp() { diff --git a/frontend-next/src/app/api/login/README.md b/frontend-next/src/app/api/login/README.md new file mode 100644 index 0000000..744626b --- /dev/null +++ b/frontend-next/src/app/api/login/README.md @@ -0,0 +1,22 @@ +## API Reference for ChatMaps (/login) +
+ +### POST +Inputs: + + +Output: + + +### GET +Inputs: +|Name|Type|DataType| +|----|----|--------| +session|cookie|String| + +Output: +|Condition|HTTP Status Code|Body|Body DataType| +|---------|----------------|----|-------------| +|No session token in the cookies|401|{isLogged: false}|JSON +|Successfully validated session token|200|*|JSON +|Validation of session token failed|401|{isLogged: false}|JSON \ No newline at end of file diff --git a/frontend-next/src/app/api/login/route.js b/frontend-next/src/app/api/login/route.js index 27742ea..ce676ff 100644 --- a/frontend-next/src/app/api/login/route.js +++ b/frontend-next/src/app/api/login/route.js @@ -67,7 +67,7 @@ async function handleEmailAndPassword(email, password) { } // Handles POST requests (login requests) -export async function POST(req, res) { +export async function POST(req) { try { var { email, password } = await req?.json() return await handleEmailAndPassword(email, password); // need session token @@ -77,7 +77,7 @@ export async function POST(req, res) { } // Handles GET requests (is session still valid requests) -export async function GET(req) { +export async function GET() { var session = cookies().get("session")?.value || ""; //Validate if the cookie exist in the request if (!session) { diff --git a/frontend-next/src/app/api/onboard/route.js b/frontend-next/src/app/api/onboard/route.js index 4c177a8..58db88c 100644 --- a/frontend-next/src/app/api/onboard/route.js +++ b/frontend-next/src/app/api/onboard/route.js @@ -29,7 +29,7 @@ async function onboard(firstName, lastName, req) { // Handles POST requests (login requests) -export async function POST(req, res) { +export async function POST(req) { try { var { firstName, lastName } = await req?.json() return await onboard(firstName, lastName, req); diff --git a/frontend-next/src/app/api/register/route.js b/frontend-next/src/app/api/register/route.js index 9bc7268..fa7d7e6 100644 --- a/frontend-next/src/app/api/register/route.js +++ b/frontend-next/src/app/api/register/route.js @@ -15,7 +15,7 @@ export async function registerUser(email, password) { } // POST request handler -export async function POST(req, res) { +export async function POST(req) { try { // Extract email and password from the request body var { email, password } = await req?.json(); diff --git a/frontend-next/src/app/api/signout/route.js b/frontend-next/src/app/api/signout/route.js index e33509a..ea400c9 100644 --- a/frontend-next/src/app/api/signout/route.js +++ b/frontend-next/src/app/api/signout/route.js @@ -2,7 +2,7 @@ import { cookies } from "next/headers"; import { NextResponse } from "next/server"; -export async function GET(req) { +export async function GET() { cookies().delete('user') cookies().delete('session') cookies().delete('uid') diff --git a/frontend-next/src/app/api/user/route.js b/frontend-next/src/app/api/user/route.js index 1efb9e2..c940b9d 100644 --- a/frontend-next/src/app/api/user/route.js +++ b/frontend-next/src/app/api/user/route.js @@ -1,7 +1,7 @@ import { NextResponse } from "next/server"; import { cookies } from "next/headers"; -export async function GET(req) { +export async function GET() { var userData = cookies().get("user")?.value || false return userData != false? NextResponse.json(JSON.parse(userData)): NextResponse.json({},{status: 203}) } \ No newline at end of file diff --git a/frontend-next/src/app/app/page.js b/frontend-next/src/app/app/page.js index d3ec30d..0c37c3e 100644 --- a/frontend-next/src/app/app/page.js +++ b/frontend-next/src/app/app/page.js @@ -37,7 +37,6 @@ function Geo() { if('geolocation' in navigator) { // Retrieve latitude & longitude coordinates from `navigator.geolocation` Web API navigator.geolocation.getCurrentPosition(({ coords }) => { - const { latitude, longitude } = coords; setData(coords) setLoading(false) }) diff --git a/frontend-next/src/app/register/page.js b/frontend-next/src/app/register/page.js index 5b23a72..19d1109 100644 --- a/frontend-next/src/app/register/page.js +++ b/frontend-next/src/app/register/page.js @@ -4,7 +4,7 @@ import { useForm, Form } from "react-hook-form"; import "../globals.css" function Register() { - var { register, control, setError, formState: { errors, isSubmitting, isSubmitted } } = useForm() + var { register, control, formState: { errors, isSubmitting, isSubmitted } } = useForm() var router = useRouter(); var emailRegex = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/ return ( diff --git a/frontend-next/src/middleware.js b/frontend-next/src/middleware.js index a283cb6..41f5ec0 100644 --- a/frontend-next/src/middleware.js +++ b/frontend-next/src/middleware.js @@ -1,8 +1,7 @@ // src/middleware.js import { NextResponse } from "next/server"; -import { cookies } from "next/headers"; -export async function middleware(req, res) { +export async function middleware(req) { const session = await req.cookies.get("session"); if (req.nextUrl.pathname !== "/login" && req.nextUrl.pathname != "/register") { // Login if not logged in