HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
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`;
  }
}