Fix duplicate key
This commit is contained in:
		
							parent
							
								
									a0f41b0d90
								
							
						
					
					
						commit
						c9e827b3e9
					
				| @ -4744,7 +4744,7 @@ | |||||||
|                 "type": "string" |                 "type": "string" | ||||||
|             }, |             }, | ||||||
|             "permissions": { |             "permissions": { | ||||||
|                 "type": "bigint" |                 "type": "array" | ||||||
|             }, |             }, | ||||||
|             "color": { |             "color": { | ||||||
|                 "type": "integer" |                 "type": "integer" | ||||||
|  | |||||||
| @ -10,10 +10,10 @@ const InviteRegex = /\W/g; | |||||||
| router.get("/", route({ permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { | router.get("/", route({ permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { | ||||||
| 	const { guild_id } = req.params; | 	const { guild_id } = req.params; | ||||||
| 
 | 
 | ||||||
| 	const guild = await Guild.findOneOrFail({ where: { id: guild_id }, relations: ["vanity_url"] }); | 	const invite = await Invite.findOne({ where: {guild_id: guild_id, vanity_url: true} }); | ||||||
| 	if (!guild.vanity_url) return res.json({ code: null }); | 	if (!invite) return res.json({ code: null }); | ||||||
| 
 | 
 | ||||||
| 	return res.json({ code: guild.vanity_url_code, uses: guild.vanity_url.uses }); | 	return res.json({ code: invite.code, uses: invite.uses }); | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| export interface VanityUrlSchema { | export interface VanityUrlSchema { | ||||||
| @ -33,12 +33,9 @@ router.patch("/", route({ body: "VanityUrlSchema", permission: "MANAGE_GUILD" }) | |||||||
| 	const invite = await Invite.findOne({ code }); | 	const invite = await Invite.findOne({ code }); | ||||||
| 	if (invite) throw new HTTPError("Invite already exists"); | 	if (invite) throw new HTTPError("Invite already exists"); | ||||||
| 
 | 
 | ||||||
| 	const guild = await Guild.findOneOrFail({ id: guild_id }); |  | ||||||
| 	const { id } = await Channel.findOneOrFail({ guild_id, type: ChannelType.GUILD_TEXT }); | 	const { id } = await Channel.findOneOrFail({ guild_id, type: ChannelType.GUILD_TEXT }); | ||||||
| 
 | 
 | ||||||
| 	Promise.all([ | 	Promise.all([ | ||||||
| 		Guild.update({ id: guild_id }, { vanity_url_code: code }), |  | ||||||
| 		Invite.delete({ code: guild.vanity_url_code }), |  | ||||||
| 		new Invite({ | 		new Invite({ | ||||||
| 			code: code, | 			code: code, | ||||||
| 			uses: 0, | 			uses: 0, | ||||||
|  | |||||||
| @ -33,7 +33,6 @@ router.delete("/:code", route({}), async (req: Request, res: Response) => { | |||||||
| 
 | 
 | ||||||
| 	await Promise.all([ | 	await Promise.all([ | ||||||
| 		Invite.delete({ code }), | 		Invite.delete({ code }), | ||||||
| 		Guild.update({ vanity_url_code: code }, { vanity_url_code: undefined }), |  | ||||||
| 		emitEvent({ | 		emitEvent({ | ||||||
| 			event: "INVITE_DELETE", | 			event: "INVITE_DELETE", | ||||||
| 			guild_id: guild_id, | 			guild_id: guild_id, | ||||||
|  | |||||||
| @ -1,6 +1,22 @@ | |||||||
| const { execSync } = require("child_process"); | const { execSync } = require("child_process"); | ||||||
| const path = require("path"); | const path = require("path"); | ||||||
| const fse = require("fs-extra"); | const fse = require("fs-extra"); | ||||||
|  | const { getSystemErrorMap } = require("util"); | ||||||
|  | const { argv } = require("process"); | ||||||
|  | 
 | ||||||
|  | const dirs = ["api", "util", "cdn", "gateway", "bundle"]; | ||||||
|  | 
 | ||||||
|  | const verbose = argv.includes("verbose") || argv.includes("v"); | ||||||
|  | 
 | ||||||
|  | if(argv.includes("clean")){ | ||||||
|  | 	dirs.forEach(a=>{ | ||||||
|  | 		var d = "../"+a+"/dist"; | ||||||
|  | 		if(fse.existsSync(d)) { | ||||||
|  | 			fse.rmSync(d,{recursive: true}); | ||||||
|  | 			if(verbose) console.log(`Deleted ${d}!`); | ||||||
|  | 		} | ||||||
|  | 	}); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| fse.copySync(path.join(__dirname, "..", "..", "api", "assets"), path.join(__dirname, "..", "dist", "api", "assets")); | fse.copySync(path.join(__dirname, "..", "..", "api", "assets"), path.join(__dirname, "..", "dist", "api", "assets")); | ||||||
| fse.copySync( | fse.copySync( | ||||||
| @ -8,13 +24,12 @@ fse.copySync( | |||||||
| 	path.join(__dirname, "..", "dist", "api", "client_test") | 	path.join(__dirname, "..", "dist", "api", "client_test") | ||||||
| ); | ); | ||||||
| fse.copySync(path.join(__dirname, "..", "..", "api", "locales"), path.join(__dirname, "..", "dist", "api", "locales")); | fse.copySync(path.join(__dirname, "..", "..", "api", "locales"), path.join(__dirname, "..", "dist", "api", "locales")); | ||||||
| fse.copySync(path.join(__dirname, "..", "..", "api", "src"), path.join(__dirname, "..", "dist", "api", "src")); | dirs.forEach(a=>{ | ||||||
| fse.copySync(path.join(__dirname, "..", "..", "util", "src"), path.join(__dirname, "..", "dist", "util", "src")); | 	fse.copySync("../"+a+"/src", "dist/"+a+"/src"); | ||||||
| fse.copySync(path.join(__dirname, "..", "..", "cdn", "src"), path.join(__dirname, "..", "dist", "cdn", "src")); | 	if(verbose) console.log(`Copied ${"../"+a+"/dist"} -> ${"dist/"+a+"/src"}!`); | ||||||
| fse.copySync(path.join(__dirname, "..", "..", "gateway", "src"), path.join(__dirname, "..", "dist", "gateway", "src")); | }); | ||||||
| fse.copySync(path.join(__dirname, "..", "..", "bundle", "src"), path.join(__dirname, "..", "dist", "bundle", "src")); |  | ||||||
| 
 | 
 | ||||||
| console.log("Copying   src files done"); | console.log("Copying src files done"); | ||||||
| console.log("Compiling src files ..."); | console.log("Compiling src files ..."); | ||||||
| 
 | 
 | ||||||
| console.log( | console.log( | ||||||
|  | |||||||
| @ -257,14 +257,6 @@ export class Guild extends BaseClass { | |||||||
| 	@Column({ nullable: true }) | 	@Column({ nullable: true }) | ||||||
| 	unavailable?: boolean; | 	unavailable?: boolean; | ||||||
| 
 | 
 | ||||||
| 	@Column({ nullable: true }) |  | ||||||
| 	@RelationId((guild: Guild) => guild.vanity_url) |  | ||||||
| 	vanity_url_code?: string; |  | ||||||
| 
 |  | ||||||
| 	@JoinColumn({ name: "vanity_url_code" }) |  | ||||||
| 	@ManyToOne(() => Invite) |  | ||||||
| 	vanity_url?: Invite; |  | ||||||
| 
 |  | ||||||
| 	@Column({ nullable: true }) | 	@Column({ nullable: true }) | ||||||
| 	verification_level?: number; | 	verification_level?: number; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -71,6 +71,9 @@ export class Invite extends BaseClass { | |||||||
| 	@Column({ nullable: true }) | 	@Column({ nullable: true }) | ||||||
| 	target_user_type?: number; | 	target_user_type?: number; | ||||||
| 
 | 
 | ||||||
|  | 	@Column({ nullable: true}) | ||||||
|  | 	vanity_url?: boolean; | ||||||
|  | 
 | ||||||
| 	static async joinGuild(user_id: string, code: string) { | 	static async joinGuild(user_id: string, code: string) { | ||||||
| 		const invite = await Invite.findOneOrFail({ code }); | 		const invite = await Invite.findOneOrFail({ code }); | ||||||
| 		if (invite.uses++ >= invite.max_uses && invite.max_uses !== 0) await Invite.delete({ code }); | 		if (invite.uses++ >= invite.max_uses && invite.max_uses !== 0) await Invite.delete({ code }); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 The Arcane Brony
						The Arcane Brony