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, ) {} public async getSubmissionsList(user: User) { let userSubmissions: Array; 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); } }