mirror of
https://github.com/bookorbit/bookorbit.git
synced 2026-11-03 00:11:37 -06:00
refactor(metadata): move ComicMetadataService to ComicMetadataRepository
This commit is contained in:
@@ -44,7 +44,6 @@ describe('Architecture boundaries', () => {
|
||||
'src/modules/auth/oidc/oidc-group-mapping.service.ts',
|
||||
'src/modules/authors/author-enrichment-config.service.ts',
|
||||
'src/modules/book/book-query-builder.service.ts',
|
||||
'src/modules/book/comic-metadata.service.ts',
|
||||
'src/modules/book-metadata-fetch/book-metadata-fetch-config.service.ts',
|
||||
'src/modules/catalog/catalog.service.ts',
|
||||
'src/modules/cover/cover.service.ts',
|
||||
|
||||
@@ -13,18 +13,11 @@ import { BookController } from './book.controller';
|
||||
import { BookModule } from './book.module';
|
||||
import { BookRepository } from './book.repository';
|
||||
import { BookService } from './book.service';
|
||||
import { ComicMetadataService } from './comic-metadata.service';
|
||||
|
||||
describe('BookModule', () => {
|
||||
it('registers expected controller/providers/exports', () => {
|
||||
expect(Reflect.getMetadata('controllers', BookModule)).toEqual([BookController]);
|
||||
expect(Reflect.getMetadata('providers', BookModule)).toEqual([
|
||||
BookService,
|
||||
BookRepository,
|
||||
BookReadService,
|
||||
BookQueryBuilder,
|
||||
ComicMetadataService,
|
||||
]);
|
||||
expect(Reflect.getMetadata('providers', BookModule)).toEqual([BookService, BookRepository, BookReadService, BookQueryBuilder]);
|
||||
expect(Reflect.getMetadata('exports', BookModule)).toEqual([BookService, BookReadService, BookQueryBuilder]);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -14,7 +14,6 @@ import { BookQueryBuilder } from './book-query-builder.service';
|
||||
import { BookController } from './book.controller';
|
||||
import { BookRepository } from './book.repository';
|
||||
import { BookService } from './book.service';
|
||||
import { ComicMetadataService } from './comic-metadata.service';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
@@ -29,7 +28,7 @@ import { ComicMetadataService } from './comic-metadata.service';
|
||||
UserBookStatusModule,
|
||||
],
|
||||
controllers: [BookController],
|
||||
providers: [BookService, BookRepository, BookReadService, BookQueryBuilder, ComicMetadataService],
|
||||
providers: [BookService, BookRepository, BookReadService, BookQueryBuilder],
|
||||
exports: [BookService, BookReadService, BookQueryBuilder],
|
||||
})
|
||||
export class BookModule {}
|
||||
|
||||
@@ -19,7 +19,7 @@ import { NarratorService } from '../narrator/narrator.service';
|
||||
import { UserBookStatusService } from '../user-book-status/user-book-status.service';
|
||||
import { BookQueryBuilder } from './book-query-builder.service';
|
||||
import { BookRepository } from './book.repository';
|
||||
import { ComicMetadataService } from './comic-metadata.service';
|
||||
import { ComicMetadataRepository } from '../metadata/comic-metadata.repository';
|
||||
import { BookDetailDto } from './dto/book-detail.dto';
|
||||
import { SaveProgressDto } from './dto/save-progress.dto';
|
||||
import { UpsertAudioProgressDto } from './dto/upsert-audio-progress.dto';
|
||||
@@ -41,7 +41,7 @@ export class BookService {
|
||||
private readonly appSettings: AppSettingsService,
|
||||
private readonly userBookStatusService: UserBookStatusService,
|
||||
private readonly narratorService: NarratorService,
|
||||
private readonly comicMetadataService: ComicMetadataService,
|
||||
private readonly comicMetadataService: ComicMetadataRepository,
|
||||
@Optional() private readonly embedder: BookEmbedderService,
|
||||
@Optional() private readonly fileWriteService: FileWriteService,
|
||||
) {
|
||||
|
||||
+2
-2
@@ -4,12 +4,12 @@ import { NodePgDatabase } from 'drizzle-orm/node-postgres';
|
||||
|
||||
import { DB } from '../../db';
|
||||
import * as schema from '../../db/schema';
|
||||
import { ComicMetadataDto } from './dto/update-book-metadata.dto';
|
||||
import { ComicMetadataDto } from '../book/dto/update-book-metadata.dto';
|
||||
|
||||
type Db = NodePgDatabase<typeof schema>;
|
||||
|
||||
@Injectable()
|
||||
export class ComicMetadataService {
|
||||
export class ComicMetadataRepository {
|
||||
constructor(@Inject(DB) private readonly db: Db) {}
|
||||
|
||||
async upsert(bookId: number, fields: ComicMetadataDto): Promise<void> {
|
||||
@@ -5,11 +5,11 @@ vi.mock('../embedding/embedding.module', () => ({ EmbeddingModule: class Embeddi
|
||||
import { MetadataModule } from './metadata.module';
|
||||
import { MetadataEventsService } from './metadata-events.service';
|
||||
import { MetadataService } from './metadata.service';
|
||||
import { ComicMetadataService } from '../book/comic-metadata.service';
|
||||
import { ComicMetadataRepository } from './comic-metadata.repository';
|
||||
|
||||
describe('MetadataModule', () => {
|
||||
it('registers MetadataService provider/export', () => {
|
||||
expect(Reflect.getMetadata('providers', MetadataModule)).toEqual([MetadataService, MetadataEventsService, ComicMetadataService]);
|
||||
expect(Reflect.getMetadata('exports', MetadataModule)).toEqual([MetadataService, MetadataEventsService]);
|
||||
expect(Reflect.getMetadata('providers', MetadataModule)).toEqual([MetadataService, MetadataEventsService, ComicMetadataRepository]);
|
||||
expect(Reflect.getMetadata('exports', MetadataModule)).toEqual([MetadataService, MetadataEventsService, ComicMetadataRepository]);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3,13 +3,13 @@ import { Module } from '@nestjs/common';
|
||||
import { EmbeddingModule } from '../embedding/embedding.module';
|
||||
import { MetadataScoreModule } from '../metadata-score/metadata-score.module';
|
||||
import { NarratorModule } from '../narrator/narrator.module';
|
||||
import { ComicMetadataService } from '../book/comic-metadata.service';
|
||||
import { ComicMetadataRepository } from './comic-metadata.repository';
|
||||
import { MetadataEventsService } from './metadata-events.service';
|
||||
import { MetadataService } from './metadata.service';
|
||||
|
||||
@Module({
|
||||
imports: [EmbeddingModule, MetadataScoreModule, NarratorModule],
|
||||
providers: [MetadataService, MetadataEventsService, ComicMetadataService],
|
||||
exports: [MetadataService, MetadataEventsService],
|
||||
providers: [MetadataService, MetadataEventsService, ComicMetadataRepository],
|
||||
exports: [MetadataService, MetadataEventsService, ComicMetadataRepository],
|
||||
})
|
||||
export class MetadataModule {}
|
||||
|
||||
@@ -8,7 +8,7 @@ import { join } from 'path';
|
||||
import { DB } from '../../db';
|
||||
import * as schema from '../../db/schema';
|
||||
import { BookEmbedderService } from '../embedding/book-embedder.service';
|
||||
import { ComicMetadataService } from '../book/comic-metadata.service';
|
||||
import { ComicMetadataRepository } from './comic-metadata.repository';
|
||||
import { MetadataScoreService } from '../metadata-score/metadata-score.service';
|
||||
import { NarratorService } from '../narrator/narrator.service';
|
||||
import { authors, bookAuthors, bookGenres, bookMetadata, bookTags, genres, tags } from '../../db/schema';
|
||||
@@ -37,7 +37,7 @@ export class MetadataService {
|
||||
private readonly config: ConfigService,
|
||||
private readonly scoreService: MetadataScoreService,
|
||||
private readonly narratorService: NarratorService,
|
||||
private readonly comicMetadataService: ComicMetadataService,
|
||||
private readonly comicMetadataService: ComicMetadataRepository,
|
||||
@Optional() private readonly embedder: BookEmbedderService,
|
||||
@Optional() private readonly metadataEvents?: MetadataEventsService,
|
||||
) {
|
||||
|
||||
Reference in New Issue
Block a user