31 lines
1.0 KiB
TypeScript
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();
|
|
}
|
|
}
|