refactor: add InstanceRepository
This commit is contained in:
		
							parent
							
								
									debef43111
								
							
						
					
					
						commit
						0d3757f2d3
					
				
					 4 changed files with 41 additions and 11 deletions
				
			
		| 
						 | 
				
			
			@ -61,6 +61,7 @@ import { RegistryItem } from './entities/registry-item';
 | 
			
		|||
import { Ad } from './entities/ad';
 | 
			
		||||
import { PasswordResetRequest } from './entities/password-reset-request';
 | 
			
		||||
import { UserPending } from './entities/user-pending';
 | 
			
		||||
import { InstanceRepository } from './repositories/instance';
 | 
			
		||||
 | 
			
		||||
export const Announcements = getRepository(Announcement);
 | 
			
		||||
export const AnnouncementReads = getRepository(AnnouncementRead);
 | 
			
		||||
| 
						 | 
				
			
			@ -89,7 +90,7 @@ export const UserNotePinings = getRepository(UserNotePining);
 | 
			
		|||
export const UsedUsernames = getRepository(UsedUsername);
 | 
			
		||||
export const Followings = getCustomRepository(FollowingRepository);
 | 
			
		||||
export const FollowRequests = getCustomRepository(FollowRequestRepository);
 | 
			
		||||
export const Instances = getRepository(Instance);
 | 
			
		||||
export const Instances = getCustomRepository(InstanceRepository);
 | 
			
		||||
export const Emojis = getCustomRepository(EmojiRepository);
 | 
			
		||||
export const DriveFiles = getCustomRepository(DriveFileRepository);
 | 
			
		||||
export const DriveFolders = getCustomRepository(DriveFolderRepository);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,2 +0,0 @@
 | 
			
		|||
import config from '@/config/index';
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										39
									
								
								packages/backend/src/models/repositories/instance.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								packages/backend/src/models/repositories/instance.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,39 @@
 | 
			
		|||
import { EntityRepository, Repository } from 'typeorm';
 | 
			
		||||
import { Instance } from '@/models/entities/instance';
 | 
			
		||||
import { Packed } from '@/misc/schema';
 | 
			
		||||
 | 
			
		||||
@EntityRepository(Instance)
 | 
			
		||||
export class InstanceRepository extends Repository<Instance> {
 | 
			
		||||
	public async pack(
 | 
			
		||||
		instance: Instance,
 | 
			
		||||
	): Promise<Packed<'FederationInstance'>> {
 | 
			
		||||
		return {
 | 
			
		||||
			id: instance.id,
 | 
			
		||||
			caughtAt: instance.caughtAt.toISOString(),
 | 
			
		||||
			host: instance.host,
 | 
			
		||||
			usersCount: instance.usersCount,
 | 
			
		||||
			notesCount: instance.notesCount,
 | 
			
		||||
			followingCount: instance.followingCount,
 | 
			
		||||
			followersCount: instance.followersCount,
 | 
			
		||||
			latestRequestSentAt: instance.latestRequestSentAt ? instance.latestRequestSentAt.toISOString() : null,
 | 
			
		||||
			lastCommunicatedAt: instance.lastCommunicatedAt.toISOString(),
 | 
			
		||||
			isNotResponding: instance.isNotResponding,
 | 
			
		||||
			isSuspended: instance.isSuspended,
 | 
			
		||||
			softwareName: instance.softwareName,
 | 
			
		||||
			softwareVersion: instance.softwareVersion,
 | 
			
		||||
			openRegistrations: instance.openRegistrations,
 | 
			
		||||
			name: instance.name,
 | 
			
		||||
			description: instance.description,
 | 
			
		||||
			maintainerName: instance.maintainerName,
 | 
			
		||||
			maintainerEmail: instance.maintainerEmail,
 | 
			
		||||
			iconUrl: instance.iconUrl,
 | 
			
		||||
			infoUpdatedAt: instance.infoUpdatedAt ? instance.infoUpdatedAt.toISOString() : null,
 | 
			
		||||
		};
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public packMany(
 | 
			
		||||
		instances: Instance[],
 | 
			
		||||
	) {
 | 
			
		||||
		return Promise.all(instances.map(x => this.pack(x)));
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -34,14 +34,6 @@ export const packedFederationInstanceSchema = {
 | 
			
		|||
			type: 'number',
 | 
			
		||||
			optional: false, nullable: false,
 | 
			
		||||
		},
 | 
			
		||||
		driveUsage: {
 | 
			
		||||
			type: 'number',
 | 
			
		||||
			optional: false, nullable: false,
 | 
			
		||||
		},
 | 
			
		||||
		driveFiles: {
 | 
			
		||||
			type: 'number',
 | 
			
		||||
			optional: false, nullable: false,
 | 
			
		||||
		},
 | 
			
		||||
		latestRequestSentAt: {
 | 
			
		||||
			type: 'string',
 | 
			
		||||
			optional: false, nullable: true,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue