refactor: LibraryItemDto2

This commit is contained in:
Aleksi Lassila
2025-03-23 22:19:00 +02:00
parent da682b2ae2
commit 8b4a4554f4
5 changed files with 18 additions and 39 deletions

View File

@@ -20,7 +20,7 @@ import {
PaginationParamsDto,
SuccessResponseDto,
} from 'src/common/common.dto';
import { LibraryItemDto2 } from './library.dto';
import { LibraryItemDto } from './library.dto';
import { LibraryService } from './library.service';
@ApiTags('users')
@@ -30,11 +30,11 @@ export class LibraryController {
constructor(private libraryService: LibraryService) {}
@Get()
@PaginatedApiOkResponse(LibraryItemDto2)
@PaginatedApiOkResponse(LibraryItemDto)
async getLibraryItems(
@GetPaginationParams() pagination: PaginationParamsDto,
@Param('userId') userId: string,
): Promise<PaginatedResponseDto<LibraryItemDto2>> {
): Promise<PaginatedResponseDto<LibraryItemDto>> {
// const user = await this.userService.findOne(userId);
const items = await this.libraryService.getLibraryItemDtos(

View File

@@ -1,29 +1,8 @@
import { ApiProperty, PickType } from '@nestjs/swagger';
import { MovieDto } from 'src/metadata/metadata.dto';
import { MovieMetadata, SeriesMetadata } from 'src/metadata/metadata.entity';
import { LibraryItem } from './library.entity';
import {
TmdbMovie,
TmdbMovieFull,
TmdbSeries,
} from 'src/metadata/tmdb/tmdb.dto';
import { MediaType } from 'src/common/common.dto';
export class LibraryItemDto extends PickType(LibraryItem, [
'tmdbId',
'mediaType',
'playStates',
'createdAt',
]) {
@ApiProperty({ type: MovieDto, required: false })
movieMetadata?: MovieDto;
@ApiProperty({ type: SeriesMetadata, required: false })
seriesMetadata?: SeriesMetadata;
@ApiProperty({ required: false })
watched?: boolean;
}
import { MovieMetadata, SeriesMetadata } from 'src/metadata/metadata.entity';
import { TmdbMovie, TmdbSeries } from 'src/metadata/tmdb/tmdb.dto';
import { LibraryItem } from './library.entity';
class NextEpisodeToAir {
@ApiProperty({ required: false })
@@ -56,7 +35,7 @@ class Season {
vote_average?: number;
}
export class LibraryItemDto2
export class LibraryItemDto
extends PickType(LibraryItem, [
'tmdbId',
'mediaType',
@@ -113,7 +92,7 @@ export class LibraryItemDto2
libraryItem: LibraryItem;
movieMetadata?: MovieMetadata;
seriesMetadata?: SeriesMetadata;
}): LibraryItemDto2 {
}): LibraryItemDto {
const { libraryItem, movieMetadata, seriesMetadata } = options;
if (!movieMetadata && !seriesMetadata) {

View File

@@ -2,7 +2,7 @@ import { Inject, Injectable } from '@nestjs/common';
import { MediaType, PaginationParamsDto } from 'src/common/common.dto';
import { MetadataService } from 'src/metadata/metadata.service';
import { Repository } from 'typeorm';
import { LibraryItemDto2 } from './library.dto';
import { LibraryItemDto } from './library.dto';
import { LibraryItem } from './library.entity';
import { USER_LIBRARY_REPOSITORY } from './library.providers';
@@ -17,7 +17,7 @@ export class LibraryService {
async getLibraryItemDtos(
userId: string,
pagination: PaginationParamsDto,
): Promise<LibraryItemDto2[]> {
): Promise<LibraryItemDto[]> {
const items = await this.getLibraryItems(userId, pagination);
return Promise.all(
@@ -31,7 +31,7 @@ export class LibraryService {
? await this.metadataService.getMovieByTmdbId(item.tmdbId)
: undefined;
return LibraryItemDto2.create({
return LibraryItemDto.create({
libraryItem: item,
seriesMetadata,
movieMetadata,