feat: changes
This commit is contained in:
29
server/api/get-interest-by-id.ts
Normal file
29
server/api/get-interest-by-id.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
export default defineEventHandler(async (event) => {
|
||||
const xTagHeader = getRequestHeader(event, "x-tag");
|
||||
|
||||
if (!xTagHeader || xTagHeader !== "094ut234") {
|
||||
throw createError({ statusCode: 401, statusMessage: "unauthenticated" });
|
||||
}
|
||||
|
||||
const query = getQuery(event);
|
||||
|
||||
const { id } = query;
|
||||
|
||||
if (!id) {
|
||||
throw createError({ statusCode: 400, statusMessage: "ID is required" });
|
||||
}
|
||||
|
||||
try {
|
||||
const interest = await getInterestById(id as string);
|
||||
return interest;
|
||||
} catch (error) {
|
||||
if (error instanceof Error) {
|
||||
throw createError({ statusCode: 500, statusMessage: error.message });
|
||||
} else {
|
||||
throw createError({
|
||||
statusCode: 500,
|
||||
statusMessage: "An unexpected error occurred",
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
10
server/api/get-interests.ts
Normal file
10
server/api/get-interests.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
export default defineEventHandler(async (event) => {
|
||||
const xTagHeader = getRequestHeader(event, "x-tag");
|
||||
|
||||
if (!xTagHeader || xTagHeader !== "094ut234") {
|
||||
throw createError({ statusCode: 401, statusMessage: "unauthenticated" });
|
||||
}
|
||||
|
||||
const interests = await getInterests();
|
||||
return interests;
|
||||
});
|
||||
38
server/utils/nocodb.ts
Normal file
38
server/utils/nocodb.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
export interface PageInfo {
|
||||
pageSize: number;
|
||||
totalRows: number;
|
||||
isFirstPage: boolean;
|
||||
isLastPage: boolean;
|
||||
page: number;
|
||||
}
|
||||
|
||||
export interface InterestsResponse {
|
||||
list: Interest[];
|
||||
PageInfo: PageInfo;
|
||||
}
|
||||
|
||||
export enum Table {
|
||||
Interest = "mbs9hjauug4eseo",
|
||||
}
|
||||
|
||||
export const getNocoDbConfiguration = () => useRuntimeConfig().nocodb;
|
||||
|
||||
export const createTableUrl = (table: Table) =>
|
||||
`${getNocoDbConfiguration().url}/api/v2/tables/${table}/records`;
|
||||
|
||||
export const getInterests = async () =>
|
||||
$fetch<InterestsResponse>(createTableUrl(Table.Interest), {
|
||||
headers: {
|
||||
"xc-token": getNocoDbConfiguration().token,
|
||||
},
|
||||
params: {
|
||||
limit: 1000,
|
||||
},
|
||||
});
|
||||
|
||||
export const getInterestById = async (id: string) =>
|
||||
$fetch<Interest>(`${createTableUrl(Table.Interest)}/${id}`, {
|
||||
headers: {
|
||||
"xc-token": getNocoDbConfiguration().token,
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user