Updated fosscord-server-util
New version of fosscord server util added
This commit is contained in:
		
							parent
							
								
									4b1d6b4cec
								
							
						
					
					
						commit
						86aa67a258
					
				| @ -31,7 +31,7 @@ | |||||||
| 	}, | 	}, | ||||||
| 	"homepage": "https://github.com/fosscord/fosscord-api#readme", | 	"homepage": "https://github.com/fosscord/fosscord-api#readme", | ||||||
| 	"dependencies": { | 	"dependencies": { | ||||||
| 		"@fosscord/server-util": "^1.0.9", | 		"@fosscord/server-util": "^1.1.0", | ||||||
| 		"@types/jest": "^26.0.22", | 		"@types/jest": "^26.0.22", | ||||||
| 		"bcrypt": "^5.0.0", | 		"bcrypt": "^5.0.0", | ||||||
| 		"body-parser": "^1.19.0", | 		"body-parser": "^1.19.0", | ||||||
|  | |||||||
							
								
								
									
										63
									
								
								src/routes/guilds/#guild_id/templates.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								src/routes/guilds/#guild_id/templates.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,63 @@ | |||||||
|  | import { Request, Response, Router } from "express"; | ||||||
|  | import { TemplateModel, getPermission, toObject } from "@fosscord/server-util"; | ||||||
|  | import { HTTPError } from "lambert-server"; | ||||||
|  | import { getIpAdress } from "../../../middlewares/GlobalRateLimit"; | ||||||
|  | import { BanCreateSchema } from "../../../schema/Ban"; | ||||||
|  | import { emitEvent } from "../../../util/Event"; | ||||||
|  | import { check } from "../../../util/instanceOf"; | ||||||
|  | import { removeMember } from "../../../util/Member"; | ||||||
|  | import { getPublicUser } from "../../../util/User"; | ||||||
|  | 
 | ||||||
|  | const router: Router = Router(); | ||||||
|  | 
 | ||||||
|  | router.get("/", async (req: Request, res: Response) => { | ||||||
|  | 	const guild_id = req.params.id; | ||||||
|  | 
 | ||||||
|  | 	const guild = await GuildModel.exists({ id: guild_id }); | ||||||
|  | 	if (!guild) throw new HTTPError("Guild not found", 404); | ||||||
|  | 
 | ||||||
|  | 	var bans = await BanModel.find({ guild_id: guild_id }).exec(); | ||||||
|  | 	return res.json(toObject(bans)); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | router.get("/:user", async (req: Request, res: Response) => { | ||||||
|  | 	const guild_id = req.params.id; | ||||||
|  | 	const user_id = req.params.ban; | ||||||
|  | 
 | ||||||
|  | 	var ban = await BanModel.findOne({ guild_id: guild_id, user_id: user_id }).exec(); | ||||||
|  | 	if (!ban) throw new HTTPError("Ban not found", 404); | ||||||
|  | 	return res.json(ban); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | router.post("/:user_id", check(BanCreateSchema), async (req: Request, res: Response) => { | ||||||
|  | 	const guild_id = req.params.id; | ||||||
|  | 	const banned_user_id = req.params.user_id; | ||||||
|  | 
 | ||||||
|  | 	const banned_user = await getPublicUser(banned_user_id); | ||||||
|  | 	const perms = await getPermission(req.user_id, guild_id); | ||||||
|  | 	perms.hasThrow("BAN_MEMBERS"); | ||||||
|  | 	if (req.user_id === banned_user_id) throw new HTTPError("You can't ban yourself", 400); | ||||||
|  | 
 | ||||||
|  | 	await removeMember(banned_user_id, guild_id); | ||||||
|  | 
 | ||||||
|  | 	const ban = await new BanModel({ | ||||||
|  | 		user_id: banned_user_id, | ||||||
|  | 		guild_id: guild_id, | ||||||
|  | 		ip: getIpAdress(req), | ||||||
|  | 		executor_id: req.user_id, | ||||||
|  | 		reason: req.body.reason, // || otherwise empty
 | ||||||
|  | 	}).save(); | ||||||
|  | 
 | ||||||
|  | 	await emitEvent({ | ||||||
|  | 		event: "GUILD_BAN_ADD", | ||||||
|  | 		data: { | ||||||
|  | 			guild_id: guild_id, | ||||||
|  | 			user: banned_user, | ||||||
|  | 		}, | ||||||
|  | 		guild_id: guild_id, | ||||||
|  | 	} as GuildBanAddEvent); | ||||||
|  | 
 | ||||||
|  | 	return res.json(ban).send(); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | export default router; | ||||||
							
								
								
									
										18
									
								
								src/schema/Template.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/schema/Template.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | |||||||
|  | export const TemplateCreateSchema = { | ||||||
|  | 	code: String, | ||||||
|  | 	name: String, | ||||||
|  | 	$description: String, | ||||||
|  | 	$usage_count: Number, | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | export interface InviteCreateSchema { | ||||||
|  | 	target_user_id?: String; | ||||||
|  | 	target_type?: String; | ||||||
|  | 	validate?: String; //? wtf is this
 | ||||||
|  | 	max_age?: Number; | ||||||
|  | 	max_uses?: Number; | ||||||
|  | 	temporary?: Boolean; | ||||||
|  | 	unique?: Boolean; | ||||||
|  | 	target_user?: String; | ||||||
|  | 	target_user_type?: Number; | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Intevel ツ
						Intevel ツ