mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 07:24:13 +00:00 
			
		
		
		
	
							parent
							
								
									6fbf1cfc28
								
							
						
					
					
						commit
						8aeabf530c
					
				
					 2 changed files with 21 additions and 0 deletions
				
			
		
							
								
								
									
										19
									
								
								src/server/api/common/generate-block-query.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								src/server/api/common/generate-block-query.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
import { User } from '../../../models/entities/user';
 | 
			
		||||
import { Blockings } from '../../../models';
 | 
			
		||||
import { SelectQueryBuilder } from 'typeorm';
 | 
			
		||||
 | 
			
		||||
export function generateBlockQueryForUsers(q: SelectQueryBuilder<any>, me: User) {
 | 
			
		||||
	const blockingQuery = Blockings.createQueryBuilder('blocking')
 | 
			
		||||
		.select('blocking.blockeeId')
 | 
			
		||||
		.where('blocking.blockerId = :blockerId', { blockerId: me.id });
 | 
			
		||||
 | 
			
		||||
	const blockedQuery = Blockings.createQueryBuilder('blocking')
 | 
			
		||||
		.select('blocking.blockerId')
 | 
			
		||||
		.where('blocking.blockeeId = :blockeeId', { blockeeId: me.id });
 | 
			
		||||
 | 
			
		||||
	q.andWhere(`user.id NOT IN (${ blockingQuery.getQuery() })`);
 | 
			
		||||
	q.setParameters(blockingQuery.getParameters());
 | 
			
		||||
 | 
			
		||||
	q.andWhere(`user.id NOT IN (${ blockedQuery.getQuery() })`);
 | 
			
		||||
	q.setParameters(blockedQuery.getParameters());
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -3,6 +3,7 @@ import $ from 'cafy';
 | 
			
		|||
import define from '../../define';
 | 
			
		||||
import { Users, Followings } from '../../../../models';
 | 
			
		||||
import { generateMuteQueryForUsers } from '../../common/generate-mute-query';
 | 
			
		||||
import { generateBlockQueryForUsers } from '../../common/generate-block-query';
 | 
			
		||||
 | 
			
		||||
export const meta = {
 | 
			
		||||
	desc: {
 | 
			
		||||
| 
						 | 
				
			
			@ -47,6 +48,7 @@ export default define(meta, async (ps, me) => {
 | 
			
		|||
		.orderBy('user.followersCount', 'DESC');
 | 
			
		||||
 | 
			
		||||
	generateMuteQueryForUsers(query, me);
 | 
			
		||||
	generateBlockQueryForUsers(query, me);
 | 
			
		||||
 | 
			
		||||
	const followingQuery = Followings.createQueryBuilder('following')
 | 
			
		||||
		.select('following.followeeId')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue