mirror of
https://github.com/spacebarchat/server.git
synced 2024-11-06 19:02:33 +01:00
Partnet + Discover fix and join
This commit is contained in:
parent
dc3fb1f519
commit
858a885b0c
@ -17,13 +17,13 @@ router.get("/", route({}), async (req: Request, res: Response) => {
|
|||||||
if (categories == undefined) {
|
if (categories == undefined) {
|
||||||
guilds = showAllGuilds
|
guilds = showAllGuilds
|
||||||
? await Guild.find({ take: Math.abs(Number(limit || configLimit)) })
|
? await Guild.find({ take: Math.abs(Number(limit || configLimit)) })
|
||||||
: await Guild.find({ where: `"features" LIKE '%COMMUNITY%'`, take: Math.abs(Number(limit || configLimit)) });
|
: await Guild.find({ where: `"features" LIKE '%DISCOVERABLE%'`, take: Math.abs(Number(limit || configLimit)) });
|
||||||
total = guilds.length;
|
total = guilds.length;
|
||||||
} else {
|
} else {
|
||||||
guilds = showAllGuilds
|
guilds = showAllGuilds
|
||||||
? await Guild.find({ where: `"primary_category_id" = ${categories}`, take: Math.abs(Number(limit || configLimit)) })
|
? await Guild.find({ where: `"primary_category_id" = ${categories}`, take: Math.abs(Number(limit || configLimit)) })
|
||||||
: await Guild.find({
|
: await Guild.find({
|
||||||
where: `"primary_category_id" = ${categories} AND "features" LIKE '%COMMUNITY%'`,
|
where: `"primary_category_id" = ${categories} AND "features" LIKE '%DISCOVERABLE%'`,
|
||||||
take: Math.abs(Number(limit || configLimit))
|
take: Math.abs(Number(limit || configLimit))
|
||||||
});
|
});
|
||||||
total = guilds.length;
|
total = guilds.length;
|
||||||
|
@ -9,8 +9,12 @@ router.get("/categories", route({}), (req: Request, res: Response) => {
|
|||||||
|
|
||||||
const { locale, primary_only } = req.query;
|
const { locale, primary_only } = req.query;
|
||||||
|
|
||||||
|
let categories;
|
||||||
|
|
||||||
let out;
|
let out;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
switch (locale) {
|
switch (locale) {
|
||||||
case "en-US":
|
case "en-US":
|
||||||
switch (primary_only) {
|
switch (primary_only) {
|
||||||
|
@ -13,7 +13,7 @@ router.get("/", route({}), async (req: Request, res: Response) => {
|
|||||||
// const guilds = await Guild.find({ where: { features: "DISCOVERABLE" } }); //, take: Math.abs(Number(limit)) });
|
// const guilds = await Guild.find({ where: { features: "DISCOVERABLE" } }); //, take: Math.abs(Number(limit)) });
|
||||||
const guilds = showAllGuilds
|
const guilds = showAllGuilds
|
||||||
? await Guild.find({ take: Math.abs(Number(limit || 24)) })
|
? await Guild.find({ take: Math.abs(Number(limit || 24)) })
|
||||||
: await Guild.find({ where: `"features" LIKE '%COMMUNITY%'`, take: Math.abs(Number(limit || 24)) });
|
: await Guild.find({ where: `"features" LIKE '%DISCOVERABLE%'`, take: Math.abs(Number(limit || 24)) });
|
||||||
res.send({ recommended_guilds: guilds });
|
res.send({ recommended_guilds: guilds });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
39
api/src/routes/guilds/#guild_id/discovery-requirements.ts
Normal file
39
api/src/routes/guilds/#guild_id/discovery-requirements.ts
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import { Guild, Config } from "@fosscord/util";
|
||||||
|
|
||||||
|
import { Router, Request, Response } from "express";
|
||||||
|
import { route } from "@fosscord/api";
|
||||||
|
|
||||||
|
const router = Router();
|
||||||
|
|
||||||
|
router.get("/", route({}), async (req: Request, res: Response) => {
|
||||||
|
const { guild_id } = req.params;
|
||||||
|
// TODO:
|
||||||
|
// Load from database
|
||||||
|
// Admin control, but for now it allows anyone to be discoverable
|
||||||
|
|
||||||
|
res.send({
|
||||||
|
guild_id: guild_id,
|
||||||
|
safe_environment: true,
|
||||||
|
healthy: true,
|
||||||
|
health_score_pending: false,
|
||||||
|
size: true,
|
||||||
|
nsfw_properties: {},
|
||||||
|
protected: true,
|
||||||
|
sufficient: true,
|
||||||
|
sufficient_without_grace_period: true,
|
||||||
|
valid_rules_channel: true,
|
||||||
|
retention_healthy: true,
|
||||||
|
engagement_healthy: true,
|
||||||
|
age: true,
|
||||||
|
minimum_age: 0,
|
||||||
|
health_score: {
|
||||||
|
avg_nonnew_participators: 0,
|
||||||
|
avg_nonnew_communicators: 0,
|
||||||
|
num_intentful_joiners: 0,
|
||||||
|
perc_ret_w1_intentful: 0
|
||||||
|
},
|
||||||
|
minimum_size: 0
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
@ -34,7 +34,7 @@ router.get("/", route({}), async (req: Request, res: Response) => {
|
|||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
guild.joined_at = member?.joined_at;
|
guild.joined_at = member?.joined_at;
|
||||||
|
|
||||||
return res.json(guild);
|
return res.send(guild);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.patch("/", route({ body: "GuildUpdateSchema", permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => {
|
router.patch("/", route({ body: "GuildUpdateSchema", permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { Request, Response, Router } from "express";
|
import { Request, Response, Router } from "express";
|
||||||
import { Member, getPermission, Role, GuildMemberUpdateEvent, emitEvent } from "@fosscord/util";
|
import { Member, getPermission, Role, GuildMemberUpdateEvent, emitEvent, Sticker, Emoji, Guild } from "@fosscord/util";
|
||||||
import { HTTPError } from "lambert-server";
|
import { HTTPError } from "lambert-server";
|
||||||
import { route } from "@fosscord/api";
|
import { route } from "@fosscord/api";
|
||||||
|
|
||||||
@ -43,13 +43,26 @@ router.patch("/", route({ body: "MemberChangeSchema" }), async (req: Request, re
|
|||||||
});
|
});
|
||||||
|
|
||||||
router.put("/", route({}), async (req: Request, res: Response) => {
|
router.put("/", route({}), async (req: Request, res: Response) => {
|
||||||
|
|
||||||
|
// TODO: Lurker mode
|
||||||
|
|
||||||
let { guild_id, member_id } = req.params;
|
let { guild_id, member_id } = req.params;
|
||||||
if (member_id === "@me") member_id = req.user_id;
|
if (member_id === "@me") member_id = req.user_id;
|
||||||
|
|
||||||
throw new HTTPError("Maintenance: Currently you can't add a member", 403);
|
var guild = await Guild.findOneOrFail({
|
||||||
// TODO: only for oauth2 applications
|
where: { id: guild_id } });
|
||||||
|
|
||||||
|
var emoji = await Emoji.find({
|
||||||
|
where: { guild_id: guild_id } });
|
||||||
|
|
||||||
|
var roles = await Role.find({
|
||||||
|
where: { guild_id: guild_id } });
|
||||||
|
|
||||||
|
var stickers = await Sticker.find({
|
||||||
|
where: { guild_id: guild_id } });
|
||||||
|
|
||||||
|
res.send({...guild, emojis: emoji, roles: roles, stickers: stickers});
|
||||||
await Member.addToGuild(member_id, guild_id);
|
await Member.addToGuild(member_id, guild_id);
|
||||||
res.sendStatus(204);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
router.delete("/", route({ permission: "KICK_MEMBERS" }), async (req: Request, res: Response) => {
|
router.delete("/", route({ permission: "KICK_MEMBERS" }), async (req: Request, res: Response) => {
|
||||||
|
40
api/src/routes/partners/#guild_id/requirements.ts
Normal file
40
api/src/routes/partners/#guild_id/requirements.ts
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
|
||||||
|
import { Guild, Config } from "@fosscord/util";
|
||||||
|
|
||||||
|
import { Router, Request, Response } from "express";
|
||||||
|
import { route } from "@fosscord/api";
|
||||||
|
|
||||||
|
const router = Router();
|
||||||
|
|
||||||
|
router.get("/", route({}), async (req: Request, res: Response) => {
|
||||||
|
const { guild_id } = req.params;
|
||||||
|
// TODO:
|
||||||
|
// Load from database
|
||||||
|
// Admin control, but for now it allows anyone to be discoverable
|
||||||
|
|
||||||
|
res.send({
|
||||||
|
guild_id: guild_id,
|
||||||
|
safe_environment: true,
|
||||||
|
healthy: true,
|
||||||
|
health_score_pending: false,
|
||||||
|
size: true,
|
||||||
|
nsfw_properties: {},
|
||||||
|
protected: true,
|
||||||
|
sufficient: true,
|
||||||
|
sufficient_without_grace_period: true,
|
||||||
|
valid_rules_channel: true,
|
||||||
|
retention_healthy: true,
|
||||||
|
engagement_healthy: true,
|
||||||
|
age: true,
|
||||||
|
minimum_age: 0,
|
||||||
|
health_score: {
|
||||||
|
avg_nonnew_participators: 0,
|
||||||
|
avg_nonnew_communicators: 0,
|
||||||
|
num_intentful_joiners: 0,
|
||||||
|
perc_ret_w1_intentful: 0
|
||||||
|
},
|
||||||
|
minimum_size: 0
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
@ -73,7 +73,7 @@ const normalizeBody = (body: any = {}) => {
|
|||||||
} else {
|
} else {
|
||||||
for (const [key, value] of Object.entries(object)) {
|
for (const [key, value] of Object.entries(object)) {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
if (key === "icon" || key === "avatar" || key === "banner" || key === "splash") continue;
|
if (key === "icon" || key === "avatar" || key === "banner" || key === "splash" || key === "discovery_splash") continue;
|
||||||
delete object[key];
|
delete object[key];
|
||||||
} else if (typeof value === "object") {
|
} else if (typeof value === "object") {
|
||||||
normalizeObject(value);
|
normalizeObject(value);
|
||||||
|
Loading…
Reference in New Issue
Block a user