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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Featyre
						Featyre