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-person.service.ts
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { VersePerson } from './entities/verse-person.entity';
import { UpdateVersePersonDto } from './dto/update-verse-person.dto';
import { CreateVersePersonDto } from './dto/create-verse-person.dto';

@Injectable()
export class VersePersonService {
  constructor(
    @InjectRepository(VersePerson) private versePersonRepo: Repository<VersePerson>,
    ) {}

  findOne(id: number) {
    return this.versePersonRepo.findOne({where: {id}, relations: ['person', 'verse']});
  }

  findAll(take: number, skip: number, showRelations: boolean = true, where: any = {}) {
    let relations = showRelations ? ['person', 'verse'] : [];
    let query: any = {where, relations};
    if(take) {
      query.take = +take;
      query.skip = +skip || 0;
    }
    return this.versePersonRepo.findAndCount(query);
  }

  create(createVersePersonDto: CreateVersePersonDto) {
    const record = this.versePersonRepo.create(createVersePersonDto);
    return this.versePersonRepo.save(record);
  }

  async update(id: number, updateVersePersonDto: UpdateVersePersonDto) {
    return this.versePersonRepo.update({id}, {state: updateVersePersonDto.state});
  }

  remove(record: VersePerson) {
    return this.versePersonRepo.remove(record);
  }
}