mirror of
https://github.com/spacebarchat/server.git
synced 2026-05-24 21:15:28 +00:00
✨ add private and public endpoint
This commit is contained in:
@@ -9,11 +9,11 @@ export default function TestClient(app: Application) {
|
||||
const indexHTML = fs.readFileSync(path.join(__dirname, "..", "..", "client_test", "index.html"), { encoding: "utf8" });
|
||||
|
||||
var html = indexHTML;
|
||||
const CDN_ENDPOINT = (Config.get().cdn.endpointClient || Config.get()?.cdn.endpoint || process.env.CDN || "").replace(
|
||||
const CDN_ENDPOINT = (Config.get().cdn.endpointClient || Config.get()?.cdn.endpointPublic || process.env.CDN || "").replace(
|
||||
/(https?)?(:\/\/?)/g,
|
||||
""
|
||||
);
|
||||
const GATEWAY_ENDPOINT = Config.get().gateway.endpointClient || Config.get()?.gateway.endpoint || process.env.GATEWAY || "";
|
||||
const GATEWAY_ENDPOINT = Config.get().gateway.endpointClient || Config.get()?.gateway.endpointPublic || process.env.GATEWAY || "";
|
||||
|
||||
if (CDN_ENDPOINT) {
|
||||
html = html.replace(/CDN_HOST: .+/, `CDN_HOST: \`${CDN_ENDPOINT}\`,`);
|
||||
|
||||
@@ -5,14 +5,14 @@ import { route } from "@fosscord/api";
|
||||
const router = Router();
|
||||
|
||||
router.get("/", route({}), (req: Request, res: Response) => {
|
||||
const { endpoint } = Config.get().gateway;
|
||||
res.json({ url: endpoint || process.env.GATEWAY || "ws://localhost:3002" });
|
||||
const { endpointPublic } = Config.get().gateway;
|
||||
res.json({ url: endpointPublic || process.env.GATEWAY || "ws://localhost:3002" });
|
||||
});
|
||||
|
||||
router.get("/bot", route({}), (req: Request, res: Response) => {
|
||||
const { endpoint } = Config.get().gateway;
|
||||
const { endpointPublic } = Config.get().gateway;
|
||||
res.json({
|
||||
url: endpoint || process.env.GATEWAY || "ws://localhost:3002",
|
||||
url: endpointPublic || process.env.GATEWAY || "ws://localhost:3002",
|
||||
shards: 1,
|
||||
session_start_limit: {
|
||||
total: 1000,
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
import { Config } from "@fosscord/util";
|
||||
import FormData from "form-data";
|
||||
import { HTTPError } from "lambert-server";
|
||||
import fetch from "node-fetch";
|
||||
|
||||
export async function uploadFile(path: string, file: Express.Multer.File) {
|
||||
const form = new FormData();
|
||||
form.append("file", file.buffer, {
|
||||
contentType: file.mimetype,
|
||||
filename: file.originalname
|
||||
});
|
||||
|
||||
const response = await fetch(`${Config.get().cdn.endpoint || "http://localhost:3003"}${path}`, {
|
||||
headers: {
|
||||
signature: Config.get().security.requestSignature,
|
||||
...form.getHeaders()
|
||||
},
|
||||
method: "POST",
|
||||
body: form
|
||||
});
|
||||
const result = await response.json();
|
||||
|
||||
if (response.status !== 200) throw result;
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function handleFile(path: string, body?: string): Promise<string | undefined> {
|
||||
if (!body || !body.startsWith("data:")) return body;
|
||||
try {
|
||||
const mimetype = body.split(":")[1].split(";")[0];
|
||||
const buffer = Buffer.from(body.split(",")[1], "base64");
|
||||
|
||||
// @ts-ignore
|
||||
const { id } = await uploadFile(path, { buffer, mimetype, originalname: "banner" });
|
||||
return id;
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
throw new HTTPError("Invalid " + path);
|
||||
}
|
||||
}
|
||||
|
||||
export async function deleteFile(path: string) {
|
||||
const response = await fetch(`${Config.get().cdn.endpoint || "http://localhost:3003"}${path}`, {
|
||||
headers: {
|
||||
signature: Config.get().security.requestSignature
|
||||
},
|
||||
method: "DELETE"
|
||||
});
|
||||
const result = await response.json();
|
||||
|
||||
if (response.status !== 200) throw result;
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user