mirror of
https://github.com/ToolJet/ToolJet
synced 2026-05-24 09:28:31 +00:00
fix: for comment and thread custom repository issue
This commit is contained in:
parent
8489b5355d
commit
45c45f05d3
5 changed files with 51 additions and 37 deletions
|
|
@ -9,10 +9,11 @@ import { User } from 'src/entities/user.entity';
|
||||||
import { Organization } from 'src/entities/organization.entity';
|
import { Organization } from 'src/entities/organization.entity';
|
||||||
import { AppVersion } from 'src/entities/app_version.entity';
|
import { AppVersion } from 'src/entities/app_version.entity';
|
||||||
import { CommentUsers } from 'src/entities/comment_user.entity';
|
import { CommentUsers } from 'src/entities/comment_user.entity';
|
||||||
|
import { Comment } from 'src/entities/comment.entity';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
controllers: [CommentController],
|
controllers: [CommentController],
|
||||||
imports: [TypeOrmModule.forFeature([CommentRepository, CommentUsers, AppVersion, User, Organization]), CaslModule],
|
imports: [TypeOrmModule.forFeature([Comment, CommentUsers, AppVersion, User, Organization]), CaslModule],
|
||||||
providers: [CommentService, EmailService],
|
providers: [CommentService, EmailService, CommentRepository],
|
||||||
})
|
})
|
||||||
export class CommentModule {}
|
export class CommentModule {}
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,11 @@ import { CaslModule } from '../casl/casl.module';
|
||||||
import { ThreadController } from '../../controllers/thread.controller';
|
import { ThreadController } from '../../controllers/thread.controller';
|
||||||
import { ThreadService } from '../../services/thread.service';
|
import { ThreadService } from '../../services/thread.service';
|
||||||
import { ThreadRepository } from '../../repositories/thread.repository';
|
import { ThreadRepository } from '../../repositories/thread.repository';
|
||||||
|
import { Thread } from 'src/entities/thread.entity';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [TypeOrmModule.forFeature([ThreadRepository]), CaslModule],
|
imports: [TypeOrmModule.forFeature([Thread]), CaslModule],
|
||||||
controllers: [ThreadController],
|
controllers: [ThreadController],
|
||||||
providers: [ThreadService],
|
providers: [ThreadService, ThreadRepository],
|
||||||
})
|
})
|
||||||
export class ThreadModule {}
|
export class ThreadModule {}
|
||||||
|
|
|
||||||
|
|
@ -1,33 +1,38 @@
|
||||||
|
import { Injectable } from '@nestjs/common';
|
||||||
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { Repository } from 'typeorm';
|
import { Repository } from 'typeorm';
|
||||||
import { Comment } from '../entities/comment.entity';
|
import { Comment } from '../entities/comment.entity';
|
||||||
import { CreateCommentDto, UpdateCommentDto } from '../dto/comment.dto';
|
import { CreateCommentDto, UpdateCommentDto } from '../dto/comment.dto';
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
export class CommentRepository extends Repository<Comment> {
|
export class CommentRepository extends Repository<Comment> {
|
||||||
|
constructor(
|
||||||
|
@InjectRepository(Comment)
|
||||||
|
private commentRepository: Repository<Comment>
|
||||||
|
) {
|
||||||
|
super(commentRepository.target, commentRepository.manager, commentRepository.queryRunner);
|
||||||
|
}
|
||||||
|
|
||||||
public async createComment(
|
public async createComment(
|
||||||
createCommentDto: CreateCommentDto,
|
createCommentDto: CreateCommentDto,
|
||||||
userId: string,
|
userId: string,
|
||||||
organizationId: string
|
organizationId: string
|
||||||
): Promise<Comment> {
|
): Promise<Comment> {
|
||||||
const { comment, threadId, appVersionsId } = createCommentDto;
|
const { comment, threadId, appVersionsId } = createCommentDto;
|
||||||
|
const _comment = this.commentRepository.create({
|
||||||
const _comment = new Comment();
|
comment,
|
||||||
_comment.comment = comment;
|
threadId,
|
||||||
_comment.threadId = threadId;
|
userId,
|
||||||
_comment.userId = userId;
|
organizationId,
|
||||||
_comment.organizationId = organizationId;
|
appVersionsId,
|
||||||
_comment.appVersionsId = appVersionsId;
|
});
|
||||||
|
return this.commentRepository.save(_comment);
|
||||||
await _comment.save();
|
|
||||||
return _comment;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public async editComment(updateCommentDto: UpdateCommentDto, editedComment: Comment): Promise<Comment> {
|
public async editComment(updateCommentDto: UpdateCommentDto, editedComment: Comment): Promise<Comment> {
|
||||||
const { comment, threadId } = updateCommentDto;
|
const { comment, threadId } = updateCommentDto;
|
||||||
|
|
||||||
editedComment.comment = comment;
|
editedComment.comment = comment;
|
||||||
editedComment.threadId = threadId;
|
editedComment.threadId = threadId;
|
||||||
await editedComment.save();
|
return this.commentRepository.save(editedComment);
|
||||||
|
|
||||||
return editedComment;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,32 @@
|
||||||
|
import { Injectable } from '@nestjs/common';
|
||||||
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { Repository } from 'typeorm';
|
import { Repository } from 'typeorm';
|
||||||
import { Thread } from '../entities/thread.entity';
|
import { Thread } from '../entities/thread.entity';
|
||||||
import { CreateThreadDto, UpdateThreadDto } from '../dto/thread.dto';
|
import { CreateThreadDto, UpdateThreadDto } from '../dto/thread.dto';
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
export class ThreadRepository extends Repository<Thread> {
|
export class ThreadRepository extends Repository<Thread> {
|
||||||
|
constructor(
|
||||||
|
@InjectRepository(Thread)
|
||||||
|
private threadRepository: Repository<Thread>
|
||||||
|
) {
|
||||||
|
super(threadRepository.target, threadRepository.manager, threadRepository.queryRunner);
|
||||||
|
}
|
||||||
|
|
||||||
public async createThread(createThreadDto: CreateThreadDto, userId: string, organizationId: string): Promise<Thread> {
|
public async createThread(createThreadDto: CreateThreadDto, userId: string, organizationId: string): Promise<Thread> {
|
||||||
const { x, y, appId, appVersionsId, pageId } = createThreadDto;
|
const { x, y, appId, appVersionsId, pageId } = createThreadDto;
|
||||||
|
|
||||||
const thread = new Thread();
|
const thread = this.threadRepository.create({
|
||||||
thread.x = x;
|
x,
|
||||||
thread.y = y;
|
y,
|
||||||
thread.appId = appId;
|
appId,
|
||||||
thread.userId = userId;
|
userId,
|
||||||
thread.organizationId = organizationId;
|
organizationId,
|
||||||
thread.appVersionsId = appVersionsId;
|
appVersionsId,
|
||||||
thread.pageId = pageId;
|
pageId,
|
||||||
|
});
|
||||||
|
|
||||||
return await thread.save();
|
return await this.threadRepository.save(thread);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async editThread(updateThreadDto: UpdateThreadDto, editedThread: Thread): Promise<Thread> {
|
public async editThread(updateThreadDto: UpdateThreadDto, editedThread: Thread): Promise<Thread> {
|
||||||
|
|
@ -24,8 +35,7 @@ export class ThreadRepository extends Repository<Thread> {
|
||||||
editedThread.x = x;
|
editedThread.x = x;
|
||||||
editedThread.y = y;
|
editedThread.y = y;
|
||||||
editedThread.isResolved = isResolved;
|
editedThread.isResolved = isResolved;
|
||||||
await editedThread.save();
|
|
||||||
|
|
||||||
return editedThread;
|
return await this.threadRepository.save(editedThread);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,7 @@ import { CommentUsers } from 'src/entities/comment_user.entity';
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class CommentService {
|
export class CommentService {
|
||||||
constructor(
|
constructor(
|
||||||
@InjectRepository(CommentRepository)
|
private readonly commentRepository: CommentRepository,
|
||||||
private commentRepository: CommentRepository,
|
|
||||||
@InjectRepository(AppVersion)
|
@InjectRepository(AppVersion)
|
||||||
private appVersionsRepository: Repository<AppVersion>,
|
private appVersionsRepository: Repository<AppVersion>,
|
||||||
@InjectRepository(User)
|
@InjectRepository(User)
|
||||||
|
|
@ -65,9 +64,8 @@ export class CommentService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public async getComments(threadId: string, appVersionsId: string): Promise<Comment[]> {
|
public async getComments(threadId: string, appVersionsId: string): Promise<Comment[]> {
|
||||||
return await
|
return await this._dataSource
|
||||||
this._dataSource.
|
.createQueryBuilder(Comment, 'comment')
|
||||||
createQueryBuilder(Comment, 'comment')
|
|
||||||
.innerJoin('comment.user', 'user')
|
.innerJoin('comment.user', 'user')
|
||||||
.addSelect(['user.id', 'user.firstName', 'user.lastName'])
|
.addSelect(['user.id', 'user.firstName', 'user.lastName'])
|
||||||
.andWhere('comment.threadId = :threadId', {
|
.andWhere('comment.threadId = :threadId', {
|
||||||
|
|
@ -99,9 +97,8 @@ export class CommentService {
|
||||||
appVersionsId: string,
|
appVersionsId: string,
|
||||||
pageId: string
|
pageId: string
|
||||||
): Promise<Comment[]> {
|
): Promise<Comment[]> {
|
||||||
const comments = await
|
const comments = await this._dataSource
|
||||||
this._dataSource.
|
.createQueryBuilder(Comment, 'comment')
|
||||||
createQueryBuilder(Comment, 'comment')
|
|
||||||
.innerJoin('comment.user', 'user')
|
.innerJoin('comment.user', 'user')
|
||||||
.addSelect(['user.id', 'user.firstName', 'user.lastName'])
|
.addSelect(['user.id', 'user.firstName', 'user.lastName'])
|
||||||
.innerJoin('comment.thread', 'thread')
|
.innerJoin('comment.thread', 'thread')
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue