mirror of
https://github.com/Nezumi-2711/next-gdrive-index.git
synced 2026-09-23 04:10:03 +00:00
Remove .env
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
import {
|
||||
FilesResponse,
|
||||
ErrorResponse,
|
||||
SearchResponse,
|
||||
} from "@/types/googleapis";
|
||||
import drive from "@/utils/driveClient";
|
||||
import { buildQuery } from "@/utils/driveHelper";
|
||||
import { NextApiRequest, NextApiResponse } from "next";
|
||||
import config from "@config/site.config";
|
||||
|
||||
export default async function handler(
|
||||
request: NextApiRequest,
|
||||
response: NextApiResponse<SearchResponse | ErrorResponse>,
|
||||
) {
|
||||
try {
|
||||
const { query } = request.query;
|
||||
if (!query) {
|
||||
const payload: SearchResponse = {
|
||||
success: true,
|
||||
timestamp: new Date().toISOString(),
|
||||
files: [],
|
||||
};
|
||||
|
||||
return response.status(200).json(payload);
|
||||
}
|
||||
|
||||
const fetchFiles = await drive.files.list({
|
||||
q: buildQuery({
|
||||
extraQuery: [`name contains '${query}'`],
|
||||
globalSearch: true,
|
||||
}),
|
||||
fields:
|
||||
"files(id, name, mimeType, thumbnailLink, fileExtension, createdTime, modifiedTime, size)",
|
||||
pageSize: config.files.searchResult,
|
||||
});
|
||||
|
||||
const payload: SearchResponse = {
|
||||
success: true,
|
||||
timestamp: new Date().toISOString(),
|
||||
files: fetchFiles.data.files || [],
|
||||
};
|
||||
|
||||
return response.status(200).json(payload);
|
||||
} catch (error: any) {
|
||||
if (error satisfies ErrorResponse) {
|
||||
const payload: ErrorResponse = {
|
||||
success: false,
|
||||
timestamp: new Date().toISOString(),
|
||||
code: error.code,
|
||||
errors: {
|
||||
message: error.errors[0].message,
|
||||
reason: error.errors[0].reason,
|
||||
},
|
||||
};
|
||||
|
||||
return response.status(error.code).json(payload);
|
||||
}
|
||||
|
||||
const payload: ErrorResponse = {
|
||||
success: false,
|
||||
timestamp: new Date().toISOString(),
|
||||
code: 500,
|
||||
errors: {
|
||||
message: error.message,
|
||||
reason: "internalError",
|
||||
},
|
||||
};
|
||||
|
||||
return response.status(500).json(payload);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user