init project portal web
This commit is contained in:
58
app/api/priceplan/create/route.ts
Normal file
58
app/api/priceplan/create/route.ts
Normal file
@ -0,0 +1,58 @@
|
||||
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 {
|
||||
offerType,
|
||||
offerName,
|
||||
pricePlanCode,
|
||||
remarks,
|
||||
sourceFrom,
|
||||
baseValidPeriod,
|
||||
serviceType,
|
||||
versionValidPeriod
|
||||
} = await request.json();
|
||||
|
||||
const url: string = `${process.env.NEXT_PUBLIC_API_URL}/priceplan/createpriceplan`
|
||||
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: 'POST',
|
||||
headers: {
|
||||
'Accept': 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': token
|
||||
},
|
||||
data: JSON.stringify({
|
||||
offerType,
|
||||
offerName,
|
||||
applyLevel: "S",
|
||||
pricePlanCode,
|
||||
remarks,
|
||||
sourceFrom,
|
||||
baseValidPeriod,
|
||||
versionValidPeriod,
|
||||
serviceType
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
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 });
|
||||
|
||||
}
|
||||
}
|
||||
36
app/api/priceplan/delete/route.ts
Normal file
36
app/api/priceplan/delete/route.ts
Normal file
@ -0,0 +1,36 @@
|
||||
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 {id} = await request.json();
|
||||
const url: string = `${process.env.NEXT_PUBLIC_API_URL}/priceplan/delete/${id}`
|
||||
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: 'DELETE',
|
||||
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 });
|
||||
|
||||
}
|
||||
}
|
||||
39
app/api/priceplan/menu/route.ts
Normal file
39
app/api/priceplan/menu/route.ts
Normal file
@ -0,0 +1,39 @@
|
||||
import axios from 'axios';
|
||||
import { cookies } from 'next/headers'
|
||||
import { NextResponse } from 'next/server';
|
||||
|
||||
export const POST = async () => {
|
||||
// INTERPOLATING API URL OF BACKEND
|
||||
const url: string = `${process.env.NEXT_PUBLIC_API_URL}/priceplan/getmenuList`
|
||||
const data = JSON.parse(cookies().get('credential')?.value ?? "")
|
||||
const token = `Bearer ${data.token}`
|
||||
// console.log(token, 'cek 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 });
|
||||
|
||||
}
|
||||
}
|
||||
39
app/api/priceplan/route.ts
Normal file
39
app/api/priceplan/route.ts
Normal 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 });
|
||||
|
||||
}
|
||||
}
|
||||
36
app/api/priceplan/servetypes/route.ts
Normal file
36
app/api/priceplan/servetypes/route.ts
Normal file
@ -0,0 +1,36 @@
|
||||
import axios from 'axios';
|
||||
import { cookies } from 'next/headers'
|
||||
import { NextResponse } from 'next/server';
|
||||
|
||||
export const POST = async () => {
|
||||
// INTERPOLATING API URL OF BACKEND
|
||||
const url: string = `${process.env.NEXT_PUBLIC_API_URL}/priceplan/getservtype`
|
||||
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 });
|
||||
|
||||
}
|
||||
}
|
||||
36
app/api/priceplan/types/route.ts
Normal file
36
app/api/priceplan/types/route.ts
Normal file
@ -0,0 +1,36 @@
|
||||
import axios from 'axios';
|
||||
import { cookies } from 'next/headers'
|
||||
import { NextResponse } from 'next/server';
|
||||
|
||||
export const POST = async () => {
|
||||
// INTERPOLATING API URL OF BACKEND
|
||||
const url: string = `${process.env.NEXT_PUBLIC_API_URL}/priceplan/getalltype`
|
||||
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 });
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user