@@ -16,10 +16,14 @@ type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';
16
16
17
17
const request = async < T > (
18
18
endpoint : string ,
19
- method : HttpMethod = 'GET' ,
20
- data ?: unknown ,
21
- headers ?: HeadersInit
19
+ options ?: {
20
+ data ?: unknown ;
21
+ method ?: HttpMethod ;
22
+ headers ?: HeadersInit ;
23
+ version ?: 'v1' | 'v2' ;
24
+ }
22
25
) : Promise < T > => {
26
+ const { data, headers, method = 'GET' , version = 'v1' } = options || { } ;
23
27
try {
24
28
const jwt = await getToken ( ) ;
25
29
const environmentId = getEnvironmentId ( ) ;
@@ -38,7 +42,7 @@ const request = async <T>(
38
42
}
39
43
40
44
const baseUrl = API_HOSTNAME ?? 'https://api.novu.co' ;
41
- const response = await fetch ( `${ baseUrl } /v1 ${ endpoint } ` , config ) ;
45
+ const response = await fetch ( `${ baseUrl } /${ version } ${ endpoint } ` , config ) ;
42
46
43
47
if ( ! response . ok ) {
44
48
const errorData = await response . json ( ) ;
@@ -61,10 +65,14 @@ const request = async <T>(
61
65
}
62
66
} ;
63
67
64
- export const get = < T > ( endpoint : string ) => request < T > ( endpoint , 'GET' ) ;
65
-
66
- export const post = < T > ( endpoint : string , data : unknown ) => request < T > ( endpoint , 'POST' , data ) ;
67
-
68
- export const put = < T > ( endpoint : string , data : unknown ) => request < T > ( endpoint , 'PUT' , data ) ;
68
+ export const get = < T > ( endpoint : string ) => request < T > ( endpoint , { method : 'GET' } ) ;
69
+ export const post = < T > ( endpoint : string , data : unknown ) => request < T > ( endpoint , { method : 'POST' , data } ) ;
70
+ export const put = < T > ( endpoint : string , data : unknown ) => request < T > ( endpoint , { method : 'PUT' , data } ) ;
71
+ export const del = < T > ( endpoint : string ) => request < T > ( endpoint , { method : 'DELETE' } ) ;
69
72
70
- export const del = < T > ( endpoint : string ) => request < T > ( endpoint , 'DELETE' ) ;
73
+ export const getV2 = < T > ( endpoint : string ) => request < T > ( endpoint , { version : 'v2' , method : 'GET' } ) ;
74
+ export const postV2 = < T > ( endpoint : string , data : unknown ) =>
75
+ request < T > ( endpoint , { version : 'v2' , method : 'POST' , data } ) ;
76
+ export const putV2 = < T > ( endpoint : string , data : unknown ) =>
77
+ request < T > ( endpoint , { version : 'v2' , method : 'PUT' , data } ) ;
78
+ export const delV2 = < T > ( endpoint : string ) => request < T > ( endpoint , { version : 'v2' , method : 'DELETE' } ) ;
0 commit comments