File tree Expand file tree Collapse file tree 2 files changed +17
-15
lines changed Expand file tree Collapse file tree 2 files changed +17
-15
lines changed Original file line number Diff line number Diff line change 1
1
// "use server";
2
- import { ErrorResponse , PaperResponse } from "@/interface" ;
3
- import axios , { AxiosResponse } from "axios" ;
2
+ import { ErrorResponse , type PaperResponse } from "@/interface" ;
3
+ import axios , { type AxiosResponse } from "axios" ;
4
+
5
+ export const fetchPaperID = async ( id : string ) : Promise < PaperResponse > => {
6
+ const serverUrl = process . env . SERVER_URL ?? "https://papers.codechefvit.com" ;
4
7
5
- export const fetchPaperID = async (
6
- id : string ,
7
- ) => {
8
8
try {
9
- if ( ! process . env . SERVER_URL )
10
- {
11
- throw "error env not set (server url)"
12
- }
13
9
const response : AxiosResponse < PaperResponse > = await axios . get (
14
- `${ process . env . SERVER_URL } /api/paper-by-id/${ id } ` ,
10
+ `${ serverUrl } /api/paper-by-id/${ id } `
15
11
) ;
16
12
return response . data ;
17
13
} catch ( err : unknown ) {
18
- throw err ;
19
-
14
+ if ( axios . isAxiosError ( err ) ) {
15
+ console . error ( "Axios error:" , err . response ?. data || err . message ) ;
16
+ const errorMessage = ( err . response ?. data as { message ?: string } ) ?. message ?? "Failed to fetch paper" ;
17
+ throw new Error ( errorMessage ) ;
18
+ } else {
19
+ console . error ( "Unexpected error:" , err ) ;
20
+ throw new Error ( "An unexpected error occurred" ) ;
21
+ }
20
22
}
21
23
} ;
Original file line number Diff line number Diff line change @@ -3,9 +3,9 @@ import Footer from "@/components/Footer";
3
3
import Navbar from "@/components/Navbar" ;
4
4
import PdfViewer from "@/components/pdfViewer" ;
5
5
import Loader from "@/components/ui/loader" ;
6
- import { ErrorResponse , PaperResponse } from "@/interface" ;
7
- import axios , { AxiosResponse } from "axios" ;
8
- import { Metadata } from "next" ;
6
+ import { type ErrorResponse , type PaperResponse } from "@/interface" ;
7
+ import axios , { type AxiosResponse } from "axios" ;
8
+ import { type Metadata } from "next" ;
9
9
import { redirect } from "next/navigation" ; // Import redirect
10
10
11
11
export async function generateMetadata ( {
You can’t perform that action at this time.
0 commit comments