mirror of
				https://github.com/KevinMidboe/immich.git
				synced 2025-10-29 17:40:28 +00:00 
			
		
		
		
	* feat(server, web): implement share with partner * chore: regenerate api * chore: regenerate api * Pass userId to getAssetCountByTimeBucket and getAssetByTimeBucket * chore: regenerate api * Use AssetGrid to view partner's assets * Remove disableNavBarActions flag * Check access to buckets * Apply suggestions from code review Co-authored-by: Jason Rasmussen <jrasm91@gmail.com> * Remove exception rethrowing * Simplify partner access check * Create new PartnerController * chore api:generate * Use partnerApi * Remove id from PartnerResponseDto * Refactor PartnerEntity * Rename args * Remove duplicate code in getAll * Create composite primary keys for partners table * Move asset access check into PartnerCore * Remove redundant getUserAssets call * Remove unused getUserAssets method * chore: regenerate api * Simplify getAll * Replace ?? with || * Simplify PartnerRepository.create * Introduce PartnerIds interface * Replace two database migrations with one * Simplify getAll * Change PartnerResponseDto to include UserResponseDto * Move partner sharing endpoints to PartnerController * Rename ShareController to SharedLinkController * chore: regenerate api after rebase * refactor: shared link remove return type * refactor: return user response dto * chore: regenerate open api * refactor: partner getAll * refactor: partner settings event typing * chore: remove unused code * refactor: add partners modal trigger * refactor: update url for viewing partner photos * feat: update partner sharing title * refactor: rename service method names * refactor: http exception logic to service, PartnerIds interface * chore: regenerate open api * test: coverage for domain code * fix: addPartner => createPartner * fix: missed rename * refactor: more code cleanup * chore: alphabetize settings order * feat: stop sharing confirmation modal * Enhance contrast of the email in dark mode * Replace button with CircleIconButton * Fix linter warning * Fix date types for PartnerEntity * Fix PartnerEntity creation * Reset assetStore state * Change layout of the partner's assets page * Add bulk download action for partner's assets --------- Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
		
			
				
	
	
		
			82 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import {
 | |
|   IAlbumRepository,
 | |
|   IAssetRepository,
 | |
|   ICommunicationRepository,
 | |
|   ICryptoRepository,
 | |
|   IGeocodingRepository,
 | |
|   IJobRepository,
 | |
|   IKeyRepository,
 | |
|   IMachineLearningRepository,
 | |
|   IMediaRepository,
 | |
|   immichAppConfig,
 | |
|   IPartnerRepository,
 | |
|   ISearchRepository,
 | |
|   ISharedLinkRepository,
 | |
|   ISmartInfoRepository,
 | |
|   IStorageRepository,
 | |
|   ISystemConfigRepository,
 | |
|   IUserRepository,
 | |
|   IUserTokenRepository,
 | |
| } from '@app/domain';
 | |
| import { BullModule } from '@nestjs/bull';
 | |
| import { Global, Module, Provider } from '@nestjs/common';
 | |
| import { ConfigModule } from '@nestjs/config';
 | |
| import { TypeOrmModule } from '@nestjs/typeorm';
 | |
| import { CommunicationGateway } from './communication.gateway';
 | |
| import { databaseConfig } from './database.config';
 | |
| import { databaseEntities } from './entities';
 | |
| import { bullConfig, bullQueues } from './infra.config';
 | |
| import {
 | |
|   AlbumRepository,
 | |
|   APIKeyRepository,
 | |
|   AssetRepository,
 | |
|   CommunicationRepository,
 | |
|   CryptoRepository,
 | |
|   FilesystemProvider,
 | |
|   GeocodingRepository,
 | |
|   JobRepository,
 | |
|   MachineLearningRepository,
 | |
|   MediaRepository,
 | |
|   PartnerRepository,
 | |
|   SharedLinkRepository,
 | |
|   SmartInfoRepository,
 | |
|   SystemConfigRepository,
 | |
|   TypesenseRepository,
 | |
|   UserRepository,
 | |
|   UserTokenRepository,
 | |
| } from './repositories';
 | |
| 
 | |
| const providers: Provider[] = [
 | |
|   { provide: IAlbumRepository, useClass: AlbumRepository },
 | |
|   { provide: IAssetRepository, useClass: AssetRepository },
 | |
|   { provide: ICommunicationRepository, useClass: CommunicationRepository },
 | |
|   { provide: ICryptoRepository, useClass: CryptoRepository },
 | |
|   { provide: IGeocodingRepository, useClass: GeocodingRepository },
 | |
|   { provide: IJobRepository, useClass: JobRepository },
 | |
|   { provide: IKeyRepository, useClass: APIKeyRepository },
 | |
|   { provide: IMachineLearningRepository, useClass: MachineLearningRepository },
 | |
|   { provide: IMediaRepository, useClass: MediaRepository },
 | |
|   { provide: IPartnerRepository, useClass: PartnerRepository },
 | |
|   { provide: ISearchRepository, useClass: TypesenseRepository },
 | |
|   { provide: ISharedLinkRepository, useClass: SharedLinkRepository },
 | |
|   { provide: ISmartInfoRepository, useClass: SmartInfoRepository },
 | |
|   { provide: IStorageRepository, useClass: FilesystemProvider },
 | |
|   { provide: ISystemConfigRepository, useClass: SystemConfigRepository },
 | |
|   { provide: IUserRepository, useClass: UserRepository },
 | |
|   { provide: IUserTokenRepository, useClass: UserTokenRepository },
 | |
| ];
 | |
| 
 | |
| @Global()
 | |
| @Module({
 | |
|   imports: [
 | |
|     ConfigModule.forRoot(immichAppConfig),
 | |
|     TypeOrmModule.forRoot(databaseConfig),
 | |
|     TypeOrmModule.forFeature(databaseEntities),
 | |
|     BullModule.forRoot(bullConfig),
 | |
|     BullModule.registerQueue(...bullQueues),
 | |
|   ],
 | |
|   providers: [...providers, CommunicationGateway],
 | |
|   exports: [...providers, BullModule],
 | |
| })
 | |
| export class InfraModule {}
 |