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:
Wingy 2023-10-26 19:32:33 -07:00 committed by GitHub
parent 7ff68223ab
commit a08a687951
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 22 additions and 28 deletions

View File

@ -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;
} }
/** /**
* *

View File

@ -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)

View File

@ -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',
}; };
} }

View File

@ -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
}); });

View File

@ -7836,12 +7836,12 @@
}, },
"ServerThemeDto": { "ServerThemeDto": {
"properties": { "properties": {
"theme": { "customCss": {
"$ref": "#/components/schemas/SystemConfigThemeDto" "type": "string"
} }
}, },
"required": [ "required": [
"theme" "customCss"
], ],
"type": "object" "type": "object"
}, },

View File

@ -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;

View File

@ -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> {

View File

@ -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: '',
},
}); });
}); });
}); });

View File

@ -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;
} }
/** /**
* *

View File

@ -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: {