refactor: mediaType capitalization

This commit is contained in:
Aleksi Lassila
2025-03-28 12:16:23 +02:00
parent aedb7168c4
commit 7b8fd359a5
7 changed files with 73 additions and 34 deletions

View File

@@ -0,0 +1,45 @@
import { MigrationInterface, QueryRunner } from 'typeorm';
export class RenameMediatype1743155964012 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
queryRunner.query(
`UPDATE library_item SET mediaType = 'movie' WHERE mediaType = 'Movie';`,
);
queryRunner.query(
`UPDATE library_item SET mediaType = 'series' WHERE mediaType = 'Series';`,
);
queryRunner.query(
`UPDATE library_item SET mediaType = 'episode' WHERE mediaType = 'Episode';`,
);
queryRunner.query(
`UPDATE play_state SET mediaType = 'movie' WHERE mediaType = 'Movie';`,
);
queryRunner.query(
`UPDATE play_state SET mediaType = 'series' WHERE mediaType = 'Series';`,
);
queryRunner.query(
`UPDATE play_state SET mediaType = 'episode' WHERE mediaType = 'Episode';`,
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
queryRunner.query(
`UPDATE library_item SET mediaType = 'Movie' WHERE mediaType = 'movie';`,
);
queryRunner.query(
`UPDATE library_item SET mediaType = 'Series' WHERE mediaType = 'series';`,
);
queryRunner.query(
`UPDATE library_item SET mediaType = 'Episode' WHERE mediaType = 'episode';`,
);
queryRunner.query(
`UPDATE play_state SET mediaType = 'Movie' WHERE mediaType = 'movie';`,
);
queryRunner.query(
`UPDATE play_state SET mediaType = 'Series' WHERE mediaType = 'series';`,
);
queryRunner.query(
`UPDATE play_state SET mediaType = 'Episode' WHERE mediaType = 'episode';`,
);
}
}

View File

@@ -49,7 +49,12 @@ export class SuccessResponseDto {
}
export enum MediaType {
Movie = 'Movie',
Series = 'Series',
Episode = 'Episode',
Movie = 'movie',
Series = 'series',
}
export enum MediaTypeFull {
Movie = 'movie',
Series = 'series',
Episode = 'episode',
}

View File

@@ -19,14 +19,14 @@ import {
MediaType,
PaginatedResponseDto,
PaginationParamsDto,
SuccessResponseDto,
SuccessResponseDto
} from 'src/common/common.dto';
import { MediaSourcesService } from 'src/users/media-sources/media-sources.service';
import {
CatalogueFilter,
LibraryItemDto,
MyListSortBy,
MyListFilter,
MyListSortBy,
SortByDirection,
} from './library.dto';
import { LibraryService } from './library.service';
@@ -68,12 +68,7 @@ export class LibraryController {
return {
...response,
items: await Promise.all(
response.items.map((i) =>
this.libraryService.getLibraryItemDto({
...i,
mediaType: i.mediaType === MediaType.Movie ? 'movie' : 'series',
}),
),
response.items.map((i) => this.libraryService.getLibraryItemDto(i)),
),
};
}
@@ -111,7 +106,8 @@ export class LibraryController {
async addLibraryItem(
@Param('userId') userId: string,
@Param('tmdbId') tmdbId: string,
@Query('mediaType', new ParseEnumPipe(MediaType)) mediaType: MediaType,
@Query('mediaType', new ParseEnumPipe(MediaType))
mediaType: MediaType,
): Promise<SuccessResponseDto> {
const item = await this.libraryService.findOrCreateByTmdbId(
userId,

View File

@@ -1,5 +1,6 @@
import { ApiProperty } from '@nestjs/swagger';
import { MediaType } from 'src/common/common.dto';
import { MovieMetadata, SeriesMetadata } from 'src/metadata/metadata.entity';
import { User } from 'src/users/user.entity';
import {
Column,
@@ -13,9 +14,8 @@ import {
Unique,
UpdateDateColumn,
} from 'typeorm';
import { PlayState } from '../play-state/play-state.entity';
import { PlayStateDto } from '../play-state/play-state.dto';
import { MovieMetadata, SeriesMetadata } from 'src/metadata/metadata.entity';
import { PlayState } from '../play-state/play-state.entity';
@Entity()
@Unique(['tmdbId', 'userId'])

View File

@@ -5,18 +5,17 @@ import {
PaginationParamsDto,
} from 'src/common/common.dto';
import { MetadataService } from 'src/metadata/metadata.service';
import { MediaSourcesService } from 'src/users/media-sources/media-sources.service';
import { Repository } from 'typeorm';
import { PlayState } from '../play-state/play-state.entity';
import {
LibraryItemDto,
MyListSortBy,
MyListFilter,
MyListSortBy,
SortByDirection,
} from './library.dto';
import { LibraryItem } from './library.entity';
import { USER_LIBRARY_REPOSITORY } from './library.providers';
import { SourceProvidersService } from 'src/source-providers/source-providers.service';
import { MediaSourcesService } from 'src/users/media-sources/media-sources.service';
import { PlayState } from '../play-state/play-state.entity';
@Injectable()
export class LibraryService {
@@ -114,7 +113,7 @@ export class LibraryService {
};
}
async getCatalogueItems<T extends object = object>(options: {
async getCatalogueItems(options: {
sourceId: string;
token: string;
pagination: PaginationParamsDto;
@@ -211,13 +210,7 @@ export class LibraryService {
return {
...response,
items: await Promise.all(
response.items.map(async (item) =>
this.getLibraryItemDto({
...item,
mediaType:
item.mediaType === MediaType.Movie ? 'movie' : 'series',
}),
),
response.items.map((item) => this.getLibraryItemDto(item)),
),
};
}

View File

@@ -10,7 +10,7 @@ import {
UpdateDateColumn,
} from 'typeorm';
import { LibraryItem } from '../library/library.entity';
import { MediaType } from 'src/common/common.dto';
import { MediaTypeFull } from 'src/common/common.dto';
import { User } from 'src/users/user.entity';
@Entity()
@@ -24,9 +24,9 @@ export class PlayState {
@Column()
tmdbId: string;
@ApiProperty({ enum: MediaType })
@ApiProperty({ enum: MediaTypeFull })
@Column()
mediaType: MediaType;
mediaType: MediaTypeFull;
@ApiProperty({ required: true, type: 'string' })
@Column()

View File

@@ -1,5 +1,5 @@
import { Inject, Injectable } from '@nestjs/common';
import { MediaType } from 'src/common/common.dto';
import { MediaTypeFull } from 'src/common/common.dto';
import { Repository } from 'typeorm';
import { BulkUpdatePlayStateDto, UpdatePlayStateDto } from './play-state.dto';
import { PlayState } from './play-state.entity';
@@ -67,7 +67,7 @@ export class PlayStatesService {
options: {
season?: number;
episode?: number;
mediaType: MediaType;
mediaType: MediaTypeFull;
save?: boolean;
},
) {
@@ -100,7 +100,7 @@ export class PlayStatesService {
playState: UpdatePlayStateDto,
) {
const state = await this.getOrCreatePlayState(userId, tmdbId, {
mediaType: MediaType.Movie,
mediaType: MediaTypeFull.Movie,
});
if (playState.progress !== undefined) state.progress = playState.progress;
@@ -119,7 +119,7 @@ export class PlayStatesService {
const state = await this.getOrCreatePlayState(userId, tmdbId, {
season,
episode,
mediaType: MediaType.Episode,
mediaType: MediaTypeFull.Episode,
});
if (playState.progress !== undefined) state.progress = playState.progress;
@@ -156,7 +156,7 @@ export class PlayStatesService {
const state = await this.getOrCreatePlayState(userId, tmdbId, {
season: updatedState.season,
episode: updatedState.episode,
mediaType: MediaType.Episode,
mediaType: MediaTypeFull.Episode,
});
if (updatedState.progress !== undefined)