File: /var/dev/shahnamag/back-end/src/verse/verse.service.ts
import { Injectable } from '@nestjs/common';
import { CreateVerseDto } from './dto/create-verse.dto';
import { UpdateVerseDto } from './dto/update-verse.dto';
import { InjectRepository } from '@nestjs/typeorm';
import { Between, In, Repository } from 'typeorm';
import { Verse } from './entities/verse.entity';
@Injectable()
export class VerseService {
constructor(
@InjectRepository(Verse) private verseRepo: Repository<Verse>,
) {}
create(createVerseDto: CreateVerseDto) {
return 'This action adds a new verse';
}
findAll(take: number, skip: number, where?: any) {
return this.verseRepo.findAndCount({take, skip, where, relations: {
versePersons: {
person: true
},
verseKeywords: {
keyword: true
},
triplets: {
subject: true,
predicate: true,
object: true
}
}});
}
findById(ids: number[]) {
return this.verseRepo.find({where: {id: In(ids)}, relations: {
versePersons: {
person: true
},
verseKeywords: {
keyword: true
},
triplets: {
subject: true,
predicate: true,
object: true
}
}});
}
findNeighbours(id: number, size: number) {
if(size<0)
return this.verseRepo.find({where: {id: Between(id+size, id-1)}});
else
return this.verseRepo.find({where: {id: Between(id+1, id+size)}});
}
findOne(id: number) {
return this.verseRepo.findOneBy({id});
}
update(id: number, updateVerseDto: UpdateVerseDto) {
return `This action updates a #${id} verse`;
}
remove(id: number) {
return `This action removes a #${id} verse`;
}
}