Я довольно новичок в узле js & nest, у меня в основном есть FeedModule (с FeedRepository \ FeedItemTypeRepository \ FeedTypeRepository) и RefundModule (с RefundService)
вот текущее состояние:
FeedModule:
@Module({
imports: [
TypeOrmModule.forFeature([Feed, FeedRepository]),
TypeOrmModule.forFeature([FeedItemType, FeedItemTypeRepository]),
TypeOrmModule.forFeature([FeedType, FeedTypeRepository]),
RefundModule
],
controllers: [FeedController],
providers: [FeedProvider, FeedService, FeedItemTypeRepository,FeedTypeRepository,],
exports: [FeedService,],
})
export class FeedModule {
}
FeedService:
@Injectable()
export class FeedService {
constructor(
@InjectRepository(FeedRepository)
private readonly feedRepository: FeedRepository,
private readonly feedItemTypeRepository: FeedItemTypeRepository,
private readonly feedTypeRepository: FeedTypeRepository,
private readonly refundService: RefundService,
// private readonly timeService: TimeService,
) {
}}
RefundModule:
@Module({
imports: [
TypeOrmModule.forFeature([Refund, RefundRepository]),
TypeOrmModule.forFeature([RefundCurrency, RefundCurrencyRepository]),
TypeOrmModule.forFeature([RefundStatus, RefundStatusRepository]),
TypeOrmModule.forFeature([RefundType, RefundTypeRepository]),
TypeOrmModule.forFeature([Feed, FeedRepository]),
TypeOrmModule.forFeature([FeedItemType, FeedItemTypeRepository]),
TypeOrmModule.forFeature([FeedType, FeedTypeRepository]),
FlightModule,
],
controllers: [RefundController, refundsByFlightController,RefundDetailsController],
providers: [RefundProvider, RefundService, FlightService],
exports: [FlightService, RefundService],
})
export class RefundModule {
}
export class RefundCurrencyModule {
}
export class RefundStatusModule {
}
export class RefundTypeModule {
}
export class UserModule {
}
любая информация будет делать по этому вопросу, что мне не хватает?Можно ли назвать несколько репозиториев в одном модуле \ Сервисе
Я перепробовал много изменений, но безрезультатно, если кто-нибудь может указать мне правильное направление.Спасибо за помощь!
Подробнее: -FeedRepo:
@EntityRepository(Feed)
export class FeedRepository extends Repository<Feed> {
getFeedItemsByUserId(id: number): Promise<Feed[]> {
return this.createQueryBuilder('feed')
.select([
'feed.id',
'feed.userId',
'feed.type',
'feed.createdAt',
])
.leftJoinAndSelect('feed.itemType', 'itemType')
.leftJoinAndSelect('feed.fkRefundFeed', 'refunds')
.leftJoinAndSelect('refunds.currency', 'refundCurrency')
.leftJoinAndSelect('refunds.status', 'refundStatus')
.leftJoinAndSelect('refunds.type', 'refundtype')
.leftJoinAndSelect('refunds.fkFlightRefund', 'flight')
.leftJoinAndSelect('feed.fkFlightFeed', 'flights')
.where({ userId: id })
.getMany();
}
async addFeedItem(feed:Feed) {
await this.createQueryBuilder().insert().into(Feed).values(feed).execute();
}
}
-FeedItemType:
@EntityRepository(FeedItemType)
export class FeedItemTypeRepository extends Repository<FeedItemType> {
getFeedItemType(id: number): Promise<FeedItemType> {
return this.findOne(
{
join: {
leftJoinAndSelect:
{ key: 'refund.fkFlightRefund' },
alias: 'refund',
},
where: { id: id },
},
);
}
}
FeedType:
@EntityRepository(FeedType)
export class FeedTypeRepository extends Repository<FeedType> {
getFeedType(id: number): Promise<FeedType> {
return this.findOne(
{
join: {
leftJoinAndSelect:
{ key: 'refund.fkFlightRefund' },
alias: 'refund',
},
where: { id: id },
},
);
}
}