Update members.ts
This commit is contained in:
		
							parent
							
								
									345afe89e6
								
							
						
					
					
						commit
						ef811aa438
					
				| @ -1,9 +1,10 @@ | |||||||
| import { Request, Response, Router } from "express"; | import { Request, Response, Router } from "express"; | ||||||
| import { GuildModel, MemberModel, UserModel, toObject, GuildMemberAddEvent, getPermission } from "@fosscord/server-util"; | import { GuildModel, MemberModel, UserModel, toObject, GuildMemberAddEvent, getPermission, PermissionResolvable } from "@fosscord/server-util"; | ||||||
| import { HTTPError } from "lambert-server"; | import { HTTPError } from "lambert-server"; | ||||||
| import { instanceOf, Length } from "../../../util/instanceOf"; | import { instanceOf, Length, check } from "../../../util/instanceOf"; | ||||||
| import { PublicMemberProjection, addMember, removeMember, addRole, removeRole, changeNickname } from "../../../util/Member"; | import { PublicMemberProjection, addMember, removeMember, addRole, removeRole, changeNickname } from "../../../util/Member"; | ||||||
| import { emitEvent } from "../../../util/Event"; | import { emitEvent } from "../../../util/Event"; | ||||||
|  | import { MemberNickChangeSchema } from "../../../schema/Member"; | ||||||
| import { getPublicUser } from "../../../util/User"; | import { getPublicUser } from "../../../util/User"; | ||||||
| 
 | 
 | ||||||
| const router = Router(); | const router = Router(); | ||||||
| @ -64,7 +65,7 @@ router.delete("/:member_id", async (req: Request, res: Response) => { | |||||||
| router.delete("/:member_id/roles/:role_id", async (req: Request, res: Response) => { | router.delete("/:member_id/roles/:role_id", async (req: Request, res: Response) => { | ||||||
| 	const { guild_id, role_id, member_id } = req.params; | 	const { guild_id, role_id, member_id } = req.params; | ||||||
| 
 | 
 | ||||||
| 	const perms = await getPermission(member_id, guild_id); | 	const perms = await getPermission(req.user_id, guild_id); | ||||||
| 	perms.hasThrow("MANAGE_ROLES"); | 	perms.hasThrow("MANAGE_ROLES"); | ||||||
| 
 | 
 | ||||||
| 	await removeRole(member_id, guild_id, role_id); | 	await removeRole(member_id, guild_id, role_id); | ||||||
| @ -74,19 +75,23 @@ router.delete("/:member_id/roles/:role_id", async (req: Request, res: Response) | |||||||
| router.put("/:member_id/roles/:role_id", async (req: Request, res: Response) => { | router.put("/:member_id/roles/:role_id", async (req: Request, res: Response) => { | ||||||
| 	const { guild_id, role_id, member_id } = req.params; | 	const { guild_id, role_id, member_id } = req.params; | ||||||
| 
 | 
 | ||||||
| 	const perms = await getPermission(member_id, guild_id); | 	const perms = await getPermission(req.user_id, guild_id); | ||||||
| 	perms.hasThrow("MANAGE_ROLES"); | 	perms.hasThrow("MANAGE_ROLES"); | ||||||
| 
 | 
 | ||||||
| 	await addRole(member_id, guild_id, role_id); | 	await addRole(member_id, guild_id, role_id); | ||||||
| 	res.sendStatus(204); | 	res.sendStatus(204); | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| router.patch("/:member_id/nick", async (req: Request, res: Response) => { | router.patch("/:member_id/nick", check(MemberNickChangeSchema), async (req: Request, res: Response) => { | ||||||
| 	const { guild_id, member_id } = req.params; | 	var { guild_id, member_id } = req.params; | ||||||
| 	if(!req.body.nickname) throw new HTTPError("No nickname defined", 404); | 	var permissionString:PermissionResolvable = "MANAGE_NICKNAMES"; | ||||||
| 
 | 	if(member_id === "@me") { | ||||||
| 	const perms = await getPermission(member_id, guild_id); | 		member_id = req.user_id; | ||||||
| 	perms.hasThrow("MANAGE_NICKNAMES"); | 		permissionString = "CHANGE_NICKNAME"; | ||||||
|  | 	} | ||||||
|  |   | ||||||
|  | 	const perms = await getPermission(req.user_id, guild_id); | ||||||
|  | 	perms.hasThrow(permissionString); | ||||||
| 
 | 
 | ||||||
| 	await changeNickname(member_id, guild_id, req.body.nickname); | 	await changeNickname(member_id, guild_id, req.body.nickname); | ||||||
| 	res.status(204); | 	res.status(204); | ||||||
| @ -96,7 +101,7 @@ router.patch("/members/@me/nick", async (req: Request, res: Response) => { | |||||||
| 	const { guild_id, member_id } = req.params; | 	const { guild_id, member_id } = req.params; | ||||||
| 	if(!req.body.nickname) throw new HTTPError("No nickname defined", 404); | 	if(!req.body.nickname) throw new HTTPError("No nickname defined", 404); | ||||||
| 
 | 
 | ||||||
| 	const perms = await getPermission(member_id, guild_id); | 	const perms = await getPermission(req.user_id, guild_id); | ||||||
| 	perms.hasThrow("CHANGE_NICKNAME"); | 	perms.hasThrow("CHANGE_NICKNAME"); | ||||||
| 
 | 
 | ||||||
| 	await changeNickname(member_id, guild_id, req.body.nickname); | 	await changeNickname(member_id, guild_id, req.body.nickname); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Intevel ツ
						Intevel ツ