Files
dsc-api/src/modules/task-manager/repositories/workspace.repository.ts
T

31 lines
1.0 KiB
TypeScript

import { Injectable } from "@nestjs/common";
import { InjectRepository } from "@nestjs/typeorm";
import { Repository } from 'typeorm';
import { TMWorkspace } from '../entities/workspace.entity';
@Injectable()
export class WorkspaceRepository extends Repository<TMWorkspace> {
constructor(@InjectRepository(TMWorkspace) workspaceRepository: Repository<TMWorkspace>) {
super(workspaceRepository.target, workspaceRepository.manager, workspaceRepository.queryRunner);
}
async findOneWorkSpace(workspaceId: string): Promise<TMWorkspace | null> {
return this.createQueryBuilder("workspace")
.leftJoinAndSelect('workspace.users', 'user')
.select([
'workspace',
'user.id',
'user.firstName',
'user.lastName'
]).where('workspace.id = :workspaceId', {workspaceId})
.getOne();
}
async findByUser(userId: string): Promise<TMWorkspace[]> {
return this.createQueryBuilder("workspace")
.innerJoin("workspace.users", "users")
.where("users.id = :userId", { userId })
.getMany();
}
}