fix MongoDB taking guildId: undefined as a filter
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Build / build (20) (push) Successful in 41s
				
			
		
			
				
	
				Build / build (18) (push) Successful in 1m11s
				
			
		
			
				
	
				Build / build (22) (push) Successful in 1m11s
				
			
		
			
				
	
				Build / build (18) (pull_request) Successful in 51s
				
			
		
			
				
	
				Build / build (20) (pull_request) Successful in 1m10s
				
			
		
			
				
	
				Build / build (22) (pull_request) Successful in 1m10s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Build / build (20) (push) Successful in 41s
				
			Build / build (18) (push) Successful in 1m11s
				
			Build / build (22) (push) Successful in 1m11s
				
			Build / build (18) (pull_request) Successful in 51s
				
			Build / build (20) (pull_request) Successful in 1m10s
				
			Build / build (22) (pull_request) Successful in 1m10s
				
			This commit is contained in:
		
							parent
							
								
									942f062e90
								
							
						
					
					
						commit
						02b443712a
					
				@ -34,23 +34,26 @@ export const getLeaderboard = async (
 | 
				
			|||||||
    guildId?: string,
 | 
					    guildId?: string,
 | 
				
			||||||
    pivotId?: string
 | 
					    pivotId?: string
 | 
				
			||||||
): Promise<ILeaderboardEntryClient[]> => {
 | 
					): Promise<ILeaderboardEntryClient[]> => {
 | 
				
			||||||
 | 
					    const filter: { leaderboard: string; guildId?: string } = { leaderboard };
 | 
				
			||||||
 | 
					    if (guildId) {
 | 
				
			||||||
 | 
					        filter.guildId = guildId;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let entries: TLeaderboardEntryDocument[];
 | 
					    let entries: TLeaderboardEntryDocument[];
 | 
				
			||||||
    let r: number;
 | 
					    let r: number;
 | 
				
			||||||
    if (pivotId) {
 | 
					    if (pivotId) {
 | 
				
			||||||
        const pivotDoc = await Leaderboard.findOne({ leaderboard, guildId, ownerId: pivotId });
 | 
					        const pivotDoc = await Leaderboard.findOne({ ...filter, ownerId: pivotId });
 | 
				
			||||||
        if (!pivotDoc) {
 | 
					        if (!pivotDoc) {
 | 
				
			||||||
            return [];
 | 
					            return [];
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        const beforeDocs = await Leaderboard.find({
 | 
					        const beforeDocs = await Leaderboard.find({
 | 
				
			||||||
            leaderboard,
 | 
					            ...filter,
 | 
				
			||||||
            guildId,
 | 
					 | 
				
			||||||
            score: { $gt: pivotDoc.score }
 | 
					            score: { $gt: pivotDoc.score }
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
            .sort({ score: 1 })
 | 
					            .sort({ score: 1 })
 | 
				
			||||||
            .limit(before);
 | 
					            .limit(before);
 | 
				
			||||||
        const afterDocs = await Leaderboard.find({
 | 
					        const afterDocs = await Leaderboard.find({
 | 
				
			||||||
            leaderboard,
 | 
					            ...filter,
 | 
				
			||||||
            guildId,
 | 
					 | 
				
			||||||
            score: { $lt: pivotDoc.score }
 | 
					            score: { $lt: pivotDoc.score }
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
            .sort({ score: -1 })
 | 
					            .sort({ score: -1 })
 | 
				
			||||||
@ -58,12 +61,11 @@ export const getLeaderboard = async (
 | 
				
			|||||||
        entries = [...beforeDocs.reverse(), pivotDoc, ...afterDocs];
 | 
					        entries = [...beforeDocs.reverse(), pivotDoc, ...afterDocs];
 | 
				
			||||||
        r =
 | 
					        r =
 | 
				
			||||||
            (await Leaderboard.countDocuments({
 | 
					            (await Leaderboard.countDocuments({
 | 
				
			||||||
                leaderboard,
 | 
					                ...filter,
 | 
				
			||||||
                guildId,
 | 
					 | 
				
			||||||
                score: { $gt: pivotDoc.score }
 | 
					                score: { $gt: pivotDoc.score }
 | 
				
			||||||
            })) - beforeDocs.length;
 | 
					            })) - beforeDocs.length;
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        entries = await Leaderboard.find({ leaderboard, guildId })
 | 
					        entries = await Leaderboard.find(filter)
 | 
				
			||||||
            .sort({ score: -1 })
 | 
					            .sort({ score: -1 })
 | 
				
			||||||
            .skip(before)
 | 
					            .skip(before)
 | 
				
			||||||
            .limit(after - before);
 | 
					            .limit(after - before);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user