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 { constructor(@InjectRepository(TMWorkspace) workspaceRepository: Repository) { super(workspaceRepository.target, workspaceRepository.manager, workspaceRepository.queryRunner); } async findOneWorkSpace(workspaceId: string): Promise { 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 { return this.createQueryBuilder("workspace") .innerJoin("workspace.users", "users") .where("users.id = :userId", { userId }) .getMany(); } }