mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-31 07:47:41 +09:00 
			
		
		
		
	
		
			Some checks are pending
		
		
	
	CodeQL / Analyze (javascript) (push) Waiting to run
				
			CodeQL / Analyze (python) (push) Waiting to run
				
			Docker / pre-job (push) Waiting to run
				
			Docker / Re-Tag ML () (push) Blocked by required conditions
				
			Docker / Re-Tag ML (-armnn) (push) Blocked by required conditions
				
			Docker / Re-Tag ML (-cuda) (push) Blocked by required conditions
				
			Docker / Re-Tag ML (-openvino) (push) Blocked by required conditions
				
			Docker / Re-Tag ML (-rknn) (push) Blocked by required conditions
				
			Docker / Re-Tag ML (-rocm) (push) Blocked by required conditions
				
			Docker / Re-Tag Server () (push) Blocked by required conditions
				
			Docker / Build and Push ML (armnn, linux/arm64, -armnn) (push) Blocked by required conditions
				
			Docker / Build and Push ML (cpu, ) (push) Blocked by required conditions
				
			Docker / Build and Push ML (cuda, linux/amd64, -cuda) (push) Blocked by required conditions
				
			Docker / Build and Push ML (openvino, linux/amd64, -openvino) (push) Blocked by required conditions
				
			Docker / Build and Push ML (rknn, linux/arm64, -rknn) (push) Blocked by required conditions
				
			Docker / Build and Push ML (rocm, linux/amd64, {"linux/amd64": "mich"}, -rocm) (push) Blocked by required conditions
				
			Docker / Build and Push Server (push) Blocked by required conditions
				
			Docker / Docker Build & Push Server Success (push) Blocked by required conditions
				
			Docker / Docker Build & Push ML Success (push) Blocked by required conditions
				
			Docs build / pre-job (push) Waiting to run
				
			Docs build / Docs Build (push) Blocked by required conditions
				
			Static Code Analysis / pre-job (push) Waiting to run
				
			Static Code Analysis / Run Dart Code Analysis (push) Blocked by required conditions
				
			Static Code Analysis / zizmor (push) Waiting to run
				
			Test / pre-job (push) Waiting to run
				
			Test / Test & Lint Server (push) Blocked by required conditions
				
			Test / Unit Test CLI (push) Blocked by required conditions
				
			Test / Unit Test CLI (Windows) (push) Blocked by required conditions
				
			Test / Lint Web (push) Blocked by required conditions
				
			Test / Test Web (push) Blocked by required conditions
				
			Test / Test i18n (push) Blocked by required conditions
				
			Test / End-to-End Lint (push) Blocked by required conditions
				
			Test / Medium Tests (Server) (push) Blocked by required conditions
				
			Test / End-to-End Tests (Server & CLI) (ubuntu-24.04-arm) (push) Blocked by required conditions
				
			Test / End-to-End Tests (Server & CLI) (ubuntu-latest) (push) Blocked by required conditions
				
			Test / End-to-End Tests (Web) (ubuntu-24.04-arm) (push) Blocked by required conditions
				
			Test / End-to-End Tests (Web) (ubuntu-latest) (push) Blocked by required conditions
				
			Test / End-to-End Tests Success (push) Blocked by required conditions
				
			Test / Unit Test Mobile (push) Blocked by required conditions
				
			Test / Unit Test ML (push) Blocked by required conditions
				
			Test / .github Files Formatting (push) Blocked by required conditions
				
			Test / ShellCheck (push) Waiting to run
				
			Test / OpenAPI Clients (push) Waiting to run
				
			Test / SQL Schema Checks (push) Waiting to run
				
			* remove auth from endpoint and change android to apk * add auth back to `apk-links`
		
			
				
	
	
		
			116 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { Body, Controller, Delete, Get, Put } from '@nestjs/common';
 | |
| import { ApiNotFoundResponse, ApiTags } from '@nestjs/swagger';
 | |
| import { LicenseKeyDto, LicenseResponseDto } from 'src/dtos/license.dto';
 | |
| import {
 | |
|   ServerAboutResponseDto,
 | |
|   ServerApkLinksDto,
 | |
|   ServerConfigDto,
 | |
|   ServerFeaturesDto,
 | |
|   ServerMediaTypesResponseDto,
 | |
|   ServerPingResponse,
 | |
|   ServerStatsResponseDto,
 | |
|   ServerStorageResponseDto,
 | |
|   ServerThemeDto,
 | |
|   ServerVersionHistoryResponseDto,
 | |
|   ServerVersionResponseDto,
 | |
| } from 'src/dtos/server.dto';
 | |
| import { VersionCheckStateResponseDto } from 'src/dtos/system-metadata.dto';
 | |
| import { Authenticated } from 'src/middleware/auth.guard';
 | |
| import { ServerService } from 'src/services/server.service';
 | |
| import { SystemMetadataService } from 'src/services/system-metadata.service';
 | |
| import { VersionService } from 'src/services/version.service';
 | |
| 
 | |
| @ApiTags('Server')
 | |
| @Controller('server')
 | |
| export class ServerController {
 | |
|   constructor(
 | |
|     private service: ServerService,
 | |
|     private systemMetadataService: SystemMetadataService,
 | |
|     private versionService: VersionService,
 | |
|   ) {}
 | |
| 
 | |
|   @Get('about')
 | |
|   @Authenticated()
 | |
|   getAboutInfo(): Promise<ServerAboutResponseDto> {
 | |
|     return this.service.getAboutInfo();
 | |
|   }
 | |
| 
 | |
|   @Get('apk-links')
 | |
|   @Authenticated()
 | |
|   getApkLinks(): ServerApkLinksDto {
 | |
|     return this.service.getApkLinks();
 | |
|   }
 | |
| 
 | |
|   @Get('storage')
 | |
|   @Authenticated()
 | |
|   getStorage(): Promise<ServerStorageResponseDto> {
 | |
|     return this.service.getStorage();
 | |
|   }
 | |
| 
 | |
|   @Get('ping')
 | |
|   pingServer(): ServerPingResponse {
 | |
|     return this.service.ping();
 | |
|   }
 | |
| 
 | |
|   @Get('version')
 | |
|   getServerVersion(): ServerVersionResponseDto {
 | |
|     return this.versionService.getVersion();
 | |
|   }
 | |
| 
 | |
|   @Get('version-history')
 | |
|   getVersionHistory(): Promise<ServerVersionHistoryResponseDto[]> {
 | |
|     return this.versionService.getVersionHistory();
 | |
|   }
 | |
| 
 | |
|   @Get('features')
 | |
|   getServerFeatures(): Promise<ServerFeaturesDto> {
 | |
|     return this.service.getFeatures();
 | |
|   }
 | |
| 
 | |
|   @Get('theme')
 | |
|   getTheme(): Promise<ServerThemeDto> {
 | |
|     return this.service.getTheme();
 | |
|   }
 | |
| 
 | |
|   @Get('config')
 | |
|   getServerConfig(): Promise<ServerConfigDto> {
 | |
|     return this.service.getSystemConfig();
 | |
|   }
 | |
| 
 | |
|   @Get('statistics')
 | |
|   @Authenticated({ admin: true })
 | |
|   getServerStatistics(): Promise<ServerStatsResponseDto> {
 | |
|     return this.service.getStatistics();
 | |
|   }
 | |
| 
 | |
|   @Get('media-types')
 | |
|   getSupportedMediaTypes(): ServerMediaTypesResponseDto {
 | |
|     return this.service.getSupportedMediaTypes();
 | |
|   }
 | |
| 
 | |
|   @Put('license')
 | |
|   @Authenticated({ admin: true })
 | |
|   setServerLicense(@Body() license: LicenseKeyDto): Promise<LicenseResponseDto> {
 | |
|     return this.service.setLicense(license);
 | |
|   }
 | |
| 
 | |
|   @Delete('license')
 | |
|   @Authenticated({ admin: true })
 | |
|   deleteServerLicense(): Promise<void> {
 | |
|     return this.service.deleteLicense();
 | |
|   }
 | |
| 
 | |
|   @Get('license')
 | |
|   @Authenticated({ admin: true })
 | |
|   @ApiNotFoundResponse()
 | |
|   getServerLicense(): Promise<LicenseResponseDto> {
 | |
|     return this.service.getLicense();
 | |
|   }
 | |
| 
 | |
|   @Get('version-check')
 | |
|   @Authenticated()
 | |
|   getVersionCheck(): Promise<VersionCheckStateResponseDto> {
 | |
|     return this.systemMetadataService.getVersionCheckState();
 | |
|   }
 | |
| }
 |