mirror of
https://github.com/spacebarchat/server.git
synced 2024-11-06 19:02:33 +01:00
commit
2867d077a2
@ -11,6 +11,9 @@ export const NO_AUTHORIZATION_ROUTES = [
|
|||||||
"/experiments",
|
"/experiments",
|
||||||
"/-/readyz",
|
"/-/readyz",
|
||||||
"/-/healthz",
|
"/-/healthz",
|
||||||
|
"/science",
|
||||||
|
"/track",
|
||||||
|
"/policies/instance",
|
||||||
/\/guilds\/\d+\/widget\.(json|png)/
|
/\/guilds\/\d+\/widget\.(json|png)/
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
import { Request, Response, Router } from "express";
|
import { Request, Response, Router } from "express";
|
||||||
const router: Router = Router();
|
|
||||||
import { Template, Guild, Role, Snowflake, Config, User, Member } from "@fosscord/util";
|
import { Template, Guild, Role, Snowflake, Config, User, Member } from "@fosscord/util";
|
||||||
const { enabled, allowTemplateCreation, allowDiscordTemplates, allowRaws } = Config.get().templates;
|
|
||||||
import { route } from "@fosscord/api";
|
import { route } from "@fosscord/api";
|
||||||
import { DiscordApiErrors } from "@fosscord/util";
|
import { DiscordApiErrors } from "@fosscord/util";
|
||||||
import fetch from "node-fetch";
|
import fetch from "node-fetch";
|
||||||
|
const router: Router = Router();
|
||||||
|
|
||||||
export interface GuildTemplateCreateSchema {
|
export interface GuildTemplateCreateSchema {
|
||||||
name: string;
|
name: string;
|
||||||
@ -13,6 +11,7 @@ export interface GuildTemplateCreateSchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
router.get("/:code", route({}), async (req: Request, res: Response) => {
|
router.get("/:code", route({}), async (req: Request, res: Response) => {
|
||||||
|
const { allowDiscordTemplates, allowRaws, enabled } = Config.get().templates;
|
||||||
if (!enabled) res.json({ code: 403, message: "Template creation & usage is disabled on this instance." }).sendStatus(403);
|
if (!enabled) res.json({ code: 403, message: "Template creation & usage is disabled on this instance." }).sendStatus(403);
|
||||||
|
|
||||||
const { code } = req.params;
|
const { code } = req.params;
|
||||||
@ -39,6 +38,7 @@ router.get("/:code", route({}), async (req: Request, res: Response) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
router.post("/:code", route({ body: "GuildTemplateCreateSchema" }), async (req: Request, res: Response) => {
|
router.post("/:code", route({ body: "GuildTemplateCreateSchema" }), async (req: Request, res: Response) => {
|
||||||
|
const { enabled, allowTemplateCreation, allowDiscordTemplates, allowRaws } = Config.get().templates;
|
||||||
if (!enabled) return res.json({ code: 403, message: "Template creation & usage is disabled on this instance." }).sendStatus(403);
|
if (!enabled) return res.json({ code: 403, message: "Template creation & usage is disabled on this instance." }).sendStatus(403);
|
||||||
if (!allowTemplateCreation) return res.json({ code: 403, message: "Template creation is disabled on this instance." }).sendStatus(403);
|
if (!allowTemplateCreation) return res.json({ code: 403, message: "Template creation is disabled on this instance." }).sendStatus(403);
|
||||||
|
|
||||||
|
18
api/src/routes/policies/instance/domains.ts
Normal file
18
api/src/routes/policies/instance/domains.ts
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
import { Router, Request, Response } from "express";
|
||||||
|
import { route } from "@fosscord/api";
|
||||||
|
import { Config } from "@fosscord/util";
|
||||||
|
import { config } from "dotenv"
|
||||||
|
const router = Router();
|
||||||
|
|
||||||
|
router.get("/",route({}), async (req: Request, res: Response) => {
|
||||||
|
const { cdn, gateway } = Config.get();
|
||||||
|
|
||||||
|
const IdentityForm = {
|
||||||
|
cdn: cdn.endpointPublic || process.env.CDN || "http://localhost:3001",
|
||||||
|
gateway: gateway.endpointPublic || process.env.GATEWAY || "ws://localhost:3002"
|
||||||
|
};
|
||||||
|
|
||||||
|
res.json(IdentityForm);
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
12
api/src/routes/policies/instance/index.ts
Normal file
12
api/src/routes/policies/instance/index.ts
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
import { Router, Request, Response } from "express";
|
||||||
|
import { route } from "@fosscord/api";
|
||||||
|
import { Config } from "@fosscord/util";
|
||||||
|
const router = Router();
|
||||||
|
|
||||||
|
|
||||||
|
router.get("/",route({}), async (req: Request, res: Response) => {
|
||||||
|
const { general } = Config.get();
|
||||||
|
res.json(general);
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
11
api/src/routes/policies/instance/limits.ts
Normal file
11
api/src/routes/policies/instance/limits.ts
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import { Router, Request, Response } from "express";
|
||||||
|
import { route } from "@fosscord/api";
|
||||||
|
import { Config } from "@fosscord/util";
|
||||||
|
const router = Router();
|
||||||
|
|
||||||
|
router.get("/",route({}), async (req: Request, res: Response) => {
|
||||||
|
const { limits } = Config.get();
|
||||||
|
res.json(limits);
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
11
api/src/routes/track.ts
Normal file
11
api/src/routes/track.ts
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import { Router, Response, Request } from "express";
|
||||||
|
import { route } from "@fosscord/api";
|
||||||
|
|
||||||
|
const router = Router();
|
||||||
|
|
||||||
|
router.post("/", route({}), (req: Request, res: Response) => {
|
||||||
|
// TODO:
|
||||||
|
res.sendStatus(204);
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
@ -49,6 +49,13 @@ export interface ConfigValue {
|
|||||||
endpointPrivate: string | null;
|
endpointPrivate: string | null;
|
||||||
};
|
};
|
||||||
general: {
|
general: {
|
||||||
|
instanceName: string;
|
||||||
|
instanceDescription: string | null;
|
||||||
|
frontPage: string | null;
|
||||||
|
tosPage: string | null;
|
||||||
|
correspondenceEmail: string | null;
|
||||||
|
correspondenceUserID: string | null;
|
||||||
|
image: string | null;
|
||||||
instanceId: string;
|
instanceId: string;
|
||||||
};
|
};
|
||||||
limits: {
|
limits: {
|
||||||
@ -180,6 +187,13 @@ export const DefaultConfigOptions: ConfigValue = {
|
|||||||
endpointPublic: null,
|
endpointPublic: null,
|
||||||
},
|
},
|
||||||
general: {
|
general: {
|
||||||
|
instanceName: "Fosscord Instance",
|
||||||
|
instanceDescription: "This is a Fosscord instance made in pre-relase days",
|
||||||
|
frontPage: null,
|
||||||
|
tosPage: null,
|
||||||
|
correspondenceEmail: "noreply@localhost.local",
|
||||||
|
correspondenceUserID: null,
|
||||||
|
image: null,
|
||||||
instanceId: Snowflake.generate(),
|
instanceId: Snowflake.generate(),
|
||||||
},
|
},
|
||||||
limits: {
|
limits: {
|
||||||
|
Loading…
Reference in New Issue
Block a user