mirror of
				https://github.com/KevinMidboe/immich.git
				synced 2025-10-29 17:40:28 +00:00 
			
		
		
		
	refactor(server, web): standardize theme api response (#4664)
* web: standardize theme api response * revert makefile change that i didn't mean to commit
This commit is contained in:
		
							
								
								
									
										4
									
								
								cli/src/api/open-api/api.ts
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								cli/src/api/open-api/api.ts
									
									
									
										generated
									
									
									
								
							| @@ -2966,10 +2966,10 @@ export interface ServerStatsResponseDto { | |||||||
| export interface ServerThemeDto { | export interface ServerThemeDto { | ||||||
|     /** |     /** | ||||||
|      *  |      *  | ||||||
|      * @type {SystemConfigThemeDto} |      * @type {string} | ||||||
|      * @memberof ServerThemeDto |      * @memberof ServerThemeDto | ||||||
|      */ |      */ | ||||||
|     'theme': SystemConfigThemeDto; |     'customCss': string; | ||||||
| } | } | ||||||
| /** | /** | ||||||
|  *  |  *  | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								mobile/openapi/doc/ServerThemeDto.md
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								mobile/openapi/doc/ServerThemeDto.md
									
									
									
										generated
									
									
									
								
							| @@ -8,7 +8,7 @@ import 'package:openapi/api.dart'; | |||||||
| ## Properties | ## Properties | ||||||
| Name | Type | Description | Notes | Name | Type | Description | Notes | ||||||
| ------------ | ------------- | ------------- | ------------- | ------------ | ------------- | ------------- | ------------- | ||||||
| **theme** | [**SystemConfigThemeDto**](SystemConfigThemeDto.md) |  |  | **customCss** | **String** |  |  | ||||||
| 
 | 
 | ||||||
| [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) | [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) | ||||||
| 
 | 
 | ||||||
|   | |||||||
							
								
								
									
										16
									
								
								mobile/openapi/lib/model/server_theme_dto.dart
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										16
									
								
								mobile/openapi/lib/model/server_theme_dto.dart
									
									
									
										generated
									
									
									
								
							| @@ -13,26 +13,26 @@ part of openapi.api; | |||||||
| class ServerThemeDto { | class ServerThemeDto { | ||||||
|   /// Returns a new [ServerThemeDto] instance. |   /// Returns a new [ServerThemeDto] instance. | ||||||
|   ServerThemeDto({ |   ServerThemeDto({ | ||||||
|     required this.theme, |     required this.customCss, | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   SystemConfigThemeDto theme; |   String customCss; | ||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|   bool operator ==(Object other) => identical(this, other) || other is ServerThemeDto && |   bool operator ==(Object other) => identical(this, other) || other is ServerThemeDto && | ||||||
|      other.theme == theme; |      other.customCss == customCss; | ||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|   int get hashCode => |   int get hashCode => | ||||||
|     // ignore: unnecessary_parenthesis |     // ignore: unnecessary_parenthesis | ||||||
|     (theme.hashCode); |     (customCss.hashCode); | ||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|   String toString() => 'ServerThemeDto[theme=$theme]'; |   String toString() => 'ServerThemeDto[customCss=$customCss]'; | ||||||
| 
 | 
 | ||||||
|   Map<String, dynamic> toJson() { |   Map<String, dynamic> toJson() { | ||||||
|     final json = <String, dynamic>{}; |     final json = <String, dynamic>{}; | ||||||
|       json[r'theme'] = this.theme; |       json[r'customCss'] = this.customCss; | ||||||
|     return json; |     return json; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| @@ -44,7 +44,7 @@ class ServerThemeDto { | |||||||
|       final json = value.cast<String, dynamic>(); |       final json = value.cast<String, dynamic>(); | ||||||
| 
 | 
 | ||||||
|       return ServerThemeDto( |       return ServerThemeDto( | ||||||
|         theme: SystemConfigThemeDto.fromJson(json[r'theme'])!, |         customCss: mapValueOfType<String>(json, r'customCss')!, | ||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
|     return null; |     return null; | ||||||
| @@ -92,7 +92,7 @@ class ServerThemeDto { | |||||||
| 
 | 
 | ||||||
|   /// The list of required keys that must be present in a JSON. |   /// The list of required keys that must be present in a JSON. | ||||||
|   static const requiredKeys = <String>{ |   static const requiredKeys = <String>{ | ||||||
|     'theme', |     'customCss', | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								mobile/openapi/test/server_theme_dto_test.dart
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								mobile/openapi/test/server_theme_dto_test.dart
									
									
									
										generated
									
									
									
								
							| @@ -16,8 +16,8 @@ void main() { | |||||||
|   // final instance = ServerThemeDto(); |   // final instance = ServerThemeDto(); | ||||||
| 
 | 
 | ||||||
|   group('test ServerThemeDto', () { |   group('test ServerThemeDto', () { | ||||||
|     // SystemConfigThemeDto theme |     // String customCss | ||||||
|     test('to test the property `theme`', () async { |     test('to test the property `customCss`', () async { | ||||||
|       // TODO |       // TODO | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|   | |||||||
| @@ -7836,12 +7836,12 @@ | |||||||
|       }, |       }, | ||||||
|       "ServerThemeDto": { |       "ServerThemeDto": { | ||||||
|         "properties": { |         "properties": { | ||||||
|           "theme": { |           "customCss": { | ||||||
|             "$ref": "#/components/schemas/SystemConfigThemeDto" |             "type": "string" | ||||||
|           } |           } | ||||||
|         }, |         }, | ||||||
|         "required": [ |         "required": [ | ||||||
|           "theme" |           "customCss" | ||||||
|         ], |         ], | ||||||
|         "type": "object" |         "type": "object" | ||||||
|       }, |       }, | ||||||
|   | |||||||
| @@ -80,9 +80,7 @@ export class ServerMediaTypesResponseDto { | |||||||
|   sidecar!: string[]; |   sidecar!: string[]; | ||||||
| } | } | ||||||
|  |  | ||||||
| export class ServerThemeDto { | export class ServerThemeDto extends SystemConfigThemeDto {} | ||||||
|   theme!: SystemConfigThemeDto; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| export class ServerConfigDto { | export class ServerConfigDto { | ||||||
|   oauthButtonText!: string; |   oauthButtonText!: string; | ||||||
|   | |||||||
| @@ -72,7 +72,7 @@ export class ServerInfoService { | |||||||
|  |  | ||||||
|   async getTheme() { |   async getTheme() { | ||||||
|     const { theme } = await this.configCore.getConfig(); |     const { theme } = await this.configCore.getConfig(); | ||||||
|     return { theme }; |     return theme; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   async getConfig(): Promise<ServerConfigDto> { |   async getConfig(): Promise<ServerConfigDto> { | ||||||
|   | |||||||
| @@ -161,9 +161,7 @@ describe(`${ServerInfoController.name} (e2e)`, () => { | |||||||
|       const { status, body } = await request(server).get('/server-info/theme'); |       const { status, body } = await request(server).get('/server-info/theme'); | ||||||
|       expect(status).toBe(200); |       expect(status).toBe(200); | ||||||
|       expect(body).toEqual({ |       expect(body).toEqual({ | ||||||
|         theme: { |         customCss: '', | ||||||
|           customCss: '', |  | ||||||
|         }, |  | ||||||
|       }); |       }); | ||||||
|     }); |     }); | ||||||
|   }); |   }); | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								web/src/api/open-api/api.ts
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								web/src/api/open-api/api.ts
									
									
									
										generated
									
									
									
								
							| @@ -2966,10 +2966,10 @@ export interface ServerStatsResponseDto { | |||||||
| export interface ServerThemeDto { | export interface ServerThemeDto { | ||||||
|     /** |     /** | ||||||
|      *  |      *  | ||||||
|      * @type {SystemConfigThemeDto} |      * @type {string} | ||||||
|      * @memberof ServerThemeDto |      * @memberof ServerThemeDto | ||||||
|      */ |      */ | ||||||
|     'theme': SystemConfigThemeDto; |     'customCss': string; | ||||||
| } | } | ||||||
| /** | /** | ||||||
|  *  |  *  | ||||||
|   | |||||||
| @@ -1,9 +1,7 @@ | |||||||
| import { RequestHandler, text } from '@sveltejs/kit'; | import { RequestHandler, text } from '@sveltejs/kit'; | ||||||
| export const GET = (async ({ locals: { api } }) => { | export const GET = (async ({ locals: { api } }) => { | ||||||
|   const { |   const { | ||||||
|     data: { |     data: { customCss }, | ||||||
|       theme: { customCss }, |  | ||||||
|     }, |  | ||||||
|   } = await api.serverInfoApi.getTheme(); |   } = await api.serverInfoApi.getTheme(); | ||||||
|   return text(customCss, { |   return text(customCss, { | ||||||
|     headers: { |     headers: { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user