feat: change answer submission architecture

This commit is contained in:
2026-07-12 17:55:09 +03:30
parent f399ec4a04
commit 4e4731dbde
11 changed files with 238 additions and 87 deletions
@@ -7,7 +7,7 @@ import { AppTimeoutException } from '@/common/exceptions/app-timeout.exception';
import { PaginatedResponse } from '@/common/responses';
import { InjectRepository } from '@nestjs/typeorm';
import { Question } from '../entities/question.entity';
import { Repository } from 'typeorm';
import { FindManyOptions, FindOneOptions, Repository } from 'typeorm';
import { TestsService } from '@/modules/tests/providers/tests.service';
import { AppException } from '@/common/exceptions/app.exception';
@@ -39,8 +39,6 @@ export class QuestionsQueryProvider {
});
}
console.log(selectedTest);
try {
const [questions, total] = await this.questionsRepository.findAndCount({
where: {
@@ -69,7 +67,19 @@ export class QuestionsQueryProvider {
}
}
public async findOneForAdmin(id: number) {
public async findByOptionsForAdmin(options: FindManyOptions<Question>) {
let questions: Array<Question> = [];
try {
questions = await this.questionsRepository.find(options);
} catch (err) {
throw new AppTimeoutException(err);
}
return questions;
}
public async findOneByIdForAdmin(id: number) {
let question: Question | null = null;
try {
@@ -91,4 +101,16 @@ export class QuestionsQueryProvider {
return question;
}
public async findOneForAdmin(options: FindOneOptions<Question>) {
let question: Question | null = null;
try {
question = await this.questionsRepository.findOne(options);
} catch (err) {
throw new AppTimeoutException(err);
}
return question;
}
}