import { getToken } from "next-auth/jwt"
import { NextResponse } from "next/server"
import type { NextRequest } from "next/server"

// API Paths to be restricted.
const protectedRoutes = ["/"]
const publicRoutes = ["/api/auth", "/api/auth/callback/azure-ad","/images"]

export default async function middleware(request: NextRequest) {
	const res = NextResponse.next()
	const pathname = request.nextUrl.pathname
	if (publicRoutes.some((path) => pathname.startsWith(path))) {
		// Allow public routes to be accessed without authentication
		return res
	} else {
		if (protectedRoutes.some((path) => pathname.startsWith(path))) {
			const token = await getToken({
				req: request
			});
			
			if (!token) {
				// not logged in.
				const url = new URL("/api/auth/signin", request.url)
				return NextResponse.redirect(url)
			}
		}
	}
 return res;
}