Skip to content

Commit a9e9e14

Browse files
committed
fix: add name property to MetadataProviderDto and update getProviders method
1 parent 32626f6 commit a9e9e14

File tree

4 files changed

+22
-35
lines changed

4 files changed

+22
-35
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
- Fix Covers/Metadata missing after metadata refreshes
99
- Added ``TESTING_LOG_HTTP_TRAFFIC_ENABLED`` parameter to help analyze network traffic
1010
- Fixed ``early_access`` being required in UpdateGameDto inconsistency in OpenAPI contract
11+
- Fixed ``name`` not being mentioned in MetadataProviderDto inconsistency in OpenAPI contract
1112

1213

1314
### Thanks

src/modules/metadata/metadata.controller.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,7 @@ export class MetadataController {
3030
@MinimumRole(Role.EDITOR)
3131
@ApiOkResponse({ type: () => MetadataProviderDto, isArray: true })
3232
async getProviders(): Promise<MetadataProviderDto[]> {
33-
return this.metadataService.providers.map(
34-
(provider) =>
35-
({
36-
slug: provider.slug,
37-
name: provider.name,
38-
priority: provider.priority,
39-
enabled: provider.enabled,
40-
}) as MetadataProviderDto,
41-
);
33+
return this.metadataService.providers.map((provider) => provider.getDto());
4234
}
4335

4436
@Get("/providers/:provider_slug/search")

src/modules/metadata/providers/abstract.metadata-provider.service.ts

Lines changed: 13 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import {
44
NotFoundException,
55
OnModuleInit,
66
} from "@nestjs/common";
7-
import { ApiProperty } from "@nestjs/swagger";
87
import {
98
IsBoolean,
109
IsInt,
@@ -32,9 +31,12 @@ import { PublisherMetadata } from "../publishers/publisher.metadata.entity";
3231
import { PublisherMetadataService } from "../publishers/publisher.metadata.service";
3332
import { TagMetadata } from "../tags/tag.metadata.entity";
3433
import { TagMetadataService } from "../tags/tag.metadata.service";
34+
import { MetadataProviderDto } from "./models/metadata-provider.dto";
3535

3636
@Injectable()
37-
export abstract class MetadataProvider implements OnModuleInit {
37+
export abstract class MetadataProvider
38+
implements OnModuleInit, MetadataProviderDto
39+
{
3840
protected readonly logger = new Logger(this.constructor.name);
3941
constructor(
4042
protected readonly metadataService: MetadataService,
@@ -59,46 +61,31 @@ export abstract class MetadataProvider implements OnModuleInit {
5961
message:
6062
"Invalid slug: The terms 'gamevault' and 'user' are reserved slugs.",
6163
})
62-
@ApiProperty({
63-
description:
64-
"slug (url-friendly name) of the provider. This is the primary identifier. Must be formatted like a valid slug.",
65-
example: "igdb",
66-
})
6764
public slug: string;
6865

6966
@IsNotEmpty()
70-
@ApiProperty({
71-
description: "display name of the provider.",
72-
example: "IGDB",
73-
})
7467
public name: string;
7568

7669
@IsInt()
7770
@IsNotEmpty()
78-
@ApiProperty({
79-
type: Number,
80-
description:
81-
"priority of usage for this provider. Lower priority providers are tried first, while higher priority providers fill in gaps.",
82-
})
8371
public priority: number;
8472

8573
@IsBoolean()
86-
@ApiProperty({
87-
type: Boolean,
88-
description: "whether this provider is enabled or not.",
89-
default: true,
90-
})
9174
public enabled = true;
9275

9376
@IsInt()
9477
@Min(0)
95-
@ApiProperty({
96-
type: Number,
97-
description:
98-
"the interval, in milliseconds, to wait between consecutive requests to prevent exceeding rate limits. this delay will be applied before each call to the provider.",
99-
})
10078
public request_interval_ms = 0;
10179

80+
public getDto(): MetadataProviderDto {
81+
return {
82+
slug: this.slug,
83+
name: this.name,
84+
priority: this.priority,
85+
enabled: this.enabled,
86+
};
87+
}
88+
10289
/**
10390
* Searches for a game using the provider. Only returns the minimal info of a game.
10491
*/

src/modules/metadata/providers/models/metadata-provider.dto.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ export class MetadataProviderDto {
2626
})
2727
public slug: string;
2828

29+
@IsNotEmpty()
30+
@ApiProperty({
31+
description: "display name of the provider.",
32+
example: "IGDB",
33+
})
34+
public name: string;
35+
2936
@IsInt()
3037
@IsNotEmpty()
3138
@ApiProperty({

0 commit comments

Comments
 (0)