completionId: cgen-5a6d4c2b4a06420e823bc98045e51a02
cgen-5a6d4c2b4a06420e823bc98045e51a02
This commit is contained in:
parent
a223a4a8c9
commit
d103af162d
2 changed files with 0 additions and 128 deletions
|
|
@ -1,4 +0,0 @@
|
||||||
import serverless from "serverless-http";
|
|
||||||
import { createServer } from "../../server";
|
|
||||||
|
|
||||||
export const handler = serverless(createServer());
|
|
||||||
|
|
@ -1,124 +0,0 @@
|
||||||
import { Handler } from "@netlify/functions";
|
|
||||||
import { readFileSync } from "fs";
|
|
||||||
import { join } from "path";
|
|
||||||
|
|
||||||
const GITBOOK_API_TOKEN =
|
|
||||||
process.env.GITBOOK_API_TOKEN ||
|
|
||||||
"gb_api_jORqpp2qlvg7pwlPiIKHAbgcFIDJBIJ1pz09WpIg";
|
|
||||||
const GITBOOK_SPACE_ID = process.env.GITBOOK_SPACE_ID || "37ITJTgjD56eN3ZI5qtt";
|
|
||||||
|
|
||||||
const PAGES = [
|
|
||||||
{
|
|
||||||
title: "Welcome to AeThex Documentation",
|
|
||||||
slug: "overview",
|
|
||||||
file: "01-overview.md",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "Getting Started",
|
|
||||||
slug: "getting-started",
|
|
||||||
file: "02-getting-started.md",
|
|
||||||
},
|
|
||||||
{ title: "Platform Guide", slug: "platform", file: "03-platform.md" },
|
|
||||||
{
|
|
||||||
title: "API Reference",
|
|
||||||
slug: "api-reference",
|
|
||||||
file: "04-api-reference.md",
|
|
||||||
},
|
|
||||||
{ title: "Tutorials", slug: "tutorials", file: "05-tutorials.md" },
|
|
||||||
{ title: "CLI Tools", slug: "cli", file: "06-cli.md" },
|
|
||||||
{ title: "Code Examples", slug: "examples", file: "07-examples.md" },
|
|
||||||
{ title: "Integrations", slug: "integrations", file: "08-integrations.md" },
|
|
||||||
{ title: "Curriculum", slug: "curriculum", file: "09-curriculum.md" },
|
|
||||||
];
|
|
||||||
|
|
||||||
async function makeRequest(
|
|
||||||
method: string,
|
|
||||||
path: string,
|
|
||||||
body?: any,
|
|
||||||
): Promise<any> {
|
|
||||||
const response = await fetch(`https://api.gitbook.com/v1${path}`, {
|
|
||||||
method,
|
|
||||||
headers: {
|
|
||||||
Authorization: `Bearer ${GITBOOK_API_TOKEN}`,
|
|
||||||
"Content-Type": "application/json",
|
|
||||||
"User-Agent": "AeThex-Docs-Sync",
|
|
||||||
},
|
|
||||||
body: body ? JSON.stringify(body) : undefined,
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error(`API Error: ${response.status} ${response.statusText}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
return response.json();
|
|
||||||
}
|
|
||||||
|
|
||||||
const handler: Handler = async (event, context) => {
|
|
||||||
// Basic auth check
|
|
||||||
const authHeader = event.headers["authorization"];
|
|
||||||
const expectedAuth = `Bearer ${process.env.SYNC_TOKEN || "aethex-docs-sync"}`;
|
|
||||||
|
|
||||||
if (authHeader !== expectedAuth) {
|
|
||||||
return {
|
|
||||||
statusCode: 401,
|
|
||||||
body: JSON.stringify({ error: "Unauthorized" }),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const results = [];
|
|
||||||
let successful = 0;
|
|
||||||
let failed = 0;
|
|
||||||
|
|
||||||
for (const page of PAGES) {
|
|
||||||
try {
|
|
||||||
// Read markdown file from docs-migration directory
|
|
||||||
const filePath = join(
|
|
||||||
process.cwd(),
|
|
||||||
"..",
|
|
||||||
"..",
|
|
||||||
"docs-migration",
|
|
||||||
page.file,
|
|
||||||
);
|
|
||||||
const content = readFileSync(filePath, "utf-8");
|
|
||||||
|
|
||||||
const body = {
|
|
||||||
title: page.title,
|
|
||||||
description: `AeThex Documentation - ${page.title}`,
|
|
||||||
};
|
|
||||||
|
|
||||||
await makeRequest("POST", `/spaces/${GITBOOK_SPACE_ID}/pages`, body);
|
|
||||||
results.push({ page: page.title, status: "success" });
|
|
||||||
successful++;
|
|
||||||
} catch (error) {
|
|
||||||
const errorMessage =
|
|
||||||
error instanceof Error ? error.message : "Unknown error";
|
|
||||||
results.push({
|
|
||||||
page: page.title,
|
|
||||||
status: "failed",
|
|
||||||
error: errorMessage,
|
|
||||||
});
|
|
||||||
failed++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
statusCode: 200,
|
|
||||||
body: JSON.stringify({
|
|
||||||
message: "Sync complete",
|
|
||||||
successful,
|
|
||||||
failed,
|
|
||||||
results,
|
|
||||||
}),
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
const errorMessage =
|
|
||||||
error instanceof Error ? error.message : "Unknown error";
|
|
||||||
return {
|
|
||||||
statusCode: 500,
|
|
||||||
body: JSON.stringify({ error: errorMessage }),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export { handler };
|
|
||||||
Loading…
Reference in a new issue