39 lines
1.0 KiB
TypeScript
39 lines
1.0 KiB
TypeScript
import { Injectable } from '@nestjs/common';
|
|
import { Repository } from 'typeorm';
|
|
import { Submission } from '../../entities/submission.entity';
|
|
import { InjectRepository } from '@nestjs/typeorm';
|
|
import { User } from '@/modules/users/entities/user.entity';
|
|
import { AppTimeoutException } from '@/common/exceptions/app-timeout.exception';
|
|
import { AppResponse } from '@/common/responses';
|
|
|
|
@Injectable()
|
|
export class UserSubmissionListingProvider {
|
|
constructor(
|
|
/**
|
|
* Inject Submission Repository
|
|
*/
|
|
@InjectRepository(Submission)
|
|
private readonly submissionsRepository: Repository<Submission>,
|
|
) {}
|
|
|
|
public async getSubmissionsList(user: User) {
|
|
let userSubmissions: Array<Submission>;
|
|
|
|
try {
|
|
userSubmissions = await this.submissionsRepository.find({
|
|
where: {
|
|
user: { id: user.id },
|
|
},
|
|
relations: {
|
|
result: true,
|
|
test: true,
|
|
},
|
|
});
|
|
} catch (err) {
|
|
throw new AppTimeoutException(err);
|
|
}
|
|
|
|
return new AppResponse(userSubmissions);
|
|
}
|
|
}
|