mirror of
https://github.com/aleksilassila/reiverr.git
synced 2026-04-26 02:35:20 +02:00
refactor: mediaType capitalization
This commit is contained in:
45
backend/migrations/1743155964012-rename-mediatype.ts
Normal file
45
backend/migrations/1743155964012-rename-mediatype.ts
Normal 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';`,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -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',
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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'])
|
||||
|
||||
@@ -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)),
|
||||
),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user