init project portal web

This commit is contained in:
Sweli Giri
2025-04-15 13:56:54 +07:00
parent 9a25243035
commit 8b15dcebf8
122 changed files with 13965 additions and 1 deletions

View File

@ -0,0 +1,39 @@
import axios from 'axios';
import { cookies } from 'next/headers'
import { NextRequest, NextResponse } from 'next/server';
export const POST = async (request: NextRequest) => {
// INTERPOLATING API URL OF BACKEND
const {page, size, type} = await request.json();
let url: string = `${process.env.NEXT_PUBLIC_API_URL}/priceplan/list`
if(type) url += `/${type}`
url += `?page=${page}&size=${size}`
const data = JSON.parse(cookies().get('credential')?.value ?? "")
const token = `Bearer ${data.token}`
try {
// MAKE AN API REQUEST
/*
* - WE USE AXIOS INSTEAD OF FETCH
* - FETCH ALWAYS RETURNS "TypeError [ERR_INVALID_STATE]: Invalid state: ReadableStream is already closed"
* WHEN WE RUN "response.json()"
*/
const response = await axios(url, {
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': token
},
})
return NextResponse.json(response.data, { status: response.status });
} catch (error: any) {
if (axios.isAxiosError(error)) {
return NextResponse.json(error.response?.data || { message: 'Unknown error' }, { status: error.response?.status || 500 });
}
return NextResponse.json({ message: 'An unexpected error occurred' }, { status: 500 });
}
}