Changed book status to smallint. Added media_type to series. Added 'Hanashi Media' regex resolver for searching. Removed 'Fiction' limitation when searching. Added update series to add new volumes. Fixed search when not all volumes would show up.
This commit is contained in:
@ -9,6 +9,7 @@ import { CreateBookDto } from './dto/create-book.dto';
|
||||
import { CreateBookOriginDto } from './dto/create-book-origin.dto';
|
||||
import { CreateBookStatusDto } from './dto/create-book-status.dto';
|
||||
import { DeleteBookStatusDto } from './dto/delete-book-status.dto';
|
||||
import { SeriesDto } from 'src/series/dto/series.dto';
|
||||
|
||||
@Injectable()
|
||||
export class BooksService {
|
||||
@ -62,12 +63,21 @@ export class BooksService {
|
||||
});
|
||||
}
|
||||
|
||||
async findBooksFromSeries(series: SeriesDto) {
|
||||
return await this.bookRepository.find({
|
||||
where: {
|
||||
providerSeriesId: series.providerSeriesId,
|
||||
provider: series.provider,
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async findBookStatusesTrackedBy(userId: UUID): Promise<BookStatusEntity[]> {
|
||||
return await this.bookStatusRepository.createQueryBuilder('s')
|
||||
.select(['s.book_id', 's.user_id'])
|
||||
.where('s.user_id = :id', { id: userId })
|
||||
.innerJoin('s.book', 'b')
|
||||
.addSelect(['b.book_title', 'b.book_desc', 'b.book_volume', 'b.provider'])
|
||||
.addSelect(['b.book_title', 'b.book_desc', 'b.book_volume', 'b.provider', 'b.providerSeriesId'])
|
||||
.getMany();
|
||||
}
|
||||
|
||||
@ -101,7 +111,7 @@ export class BooksService {
|
||||
await this.bookStatusRepository.createQueryBuilder()
|
||||
.insert()
|
||||
.values(status)
|
||||
.orUpdate(['user_id', 'book_id'], ['state', 'modified_at'], { skipUpdateIfNoValuesChanged: true })
|
||||
.orUpdate(['state', 'modified_at'], ['user_id', 'book_id'], { skipUpdateIfNoValuesChanged: true })
|
||||
.execute();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user