fix saving of submission id
This commit is contained in:
parent
8e87ca5eed
commit
6c0181c09d
@ -2,6 +2,13 @@ import { createParamDecorator, ExecutionContext } from '@nestjs/common'
|
||||
import { GqlExecutionContext } from '@nestjs/graphql'
|
||||
|
||||
export const User = createParamDecorator(
|
||||
(data: unknown, ctx: ExecutionContext) =>
|
||||
GqlExecutionContext.create(ctx).getContext().req.user,
|
||||
(data: unknown, ctx: ExecutionContext) => {
|
||||
const user = GqlExecutionContext.create(ctx).getContext().req.user
|
||||
|
||||
if (!user) {
|
||||
return null
|
||||
}
|
||||
|
||||
return user
|
||||
},
|
||||
);
|
||||
|
||||
@ -28,6 +28,12 @@ export class SubmissionStartMutation {
|
||||
): Promise<SubmissionProgressModel> {
|
||||
const form = await this.formService.findById(id)
|
||||
|
||||
if (!form.isLive && !this.formService.isAdmin(form, user)) {
|
||||
throw new Error('invalid form')
|
||||
}
|
||||
|
||||
console.log('user', user)
|
||||
|
||||
const submission = await this.startService.start(form, input, user, ipAddr)
|
||||
|
||||
cache.add(cache.getCacheKey(SubmissionEntity.name, submission.id), submission)
|
||||
|
||||
@ -43,15 +43,7 @@ export class SubmissionService {
|
||||
}
|
||||
|
||||
async findById(id: string): Promise<SubmissionEntity> {
|
||||
const submission = await this.submissionRepository.findOne(
|
||||
id,
|
||||
{
|
||||
relations: [
|
||||
'form',
|
||||
'form.admin',
|
||||
],
|
||||
}
|
||||
);
|
||||
const submission = await this.submissionRepository.findOne(id);
|
||||
|
||||
if (!submission) {
|
||||
throw new Error('no form found')
|
||||
|
||||
@ -27,9 +27,12 @@ export class SubmissionSetFieldService {
|
||||
async saveField(submission: SubmissionEntity, input: SubmissionSetFieldInput): Promise<void> {
|
||||
let field = submission.fields.find(field => field.field.id.toString() === input.field)
|
||||
|
||||
submission.timeElapsed = dayjs().diff(dayjs(submission.created), 'second')
|
||||
|
||||
if (field) {
|
||||
field.content = this.parseData(field, input.data)
|
||||
|
||||
await this.submissionRepository.save(submission)
|
||||
await this.submissionFieldRepository.save(field)
|
||||
} else {
|
||||
field = new SubmissionFieldEntity()
|
||||
@ -39,17 +42,14 @@ export class SubmissionSetFieldService {
|
||||
field.type = field.field.type
|
||||
field.content = this.parseData(field, input.data)
|
||||
|
||||
field = await this.submissionFieldRepository.save(field)
|
||||
|
||||
submission.fields.push(field)
|
||||
|
||||
submission.percentageComplete = (submission.fields.length) / submission.form.fields.length
|
||||
|
||||
// figure out why this cannot be after field save...
|
||||
await this.submissionRepository.save(submission)
|
||||
await this.submissionFieldRepository.save(field)
|
||||
}
|
||||
|
||||
submission.timeElapsed = dayjs().diff(dayjs(submission.created), 'second')
|
||||
|
||||
await this.submissionRepository.save(submission)
|
||||
|
||||
if (submission.percentageComplete === 1) {
|
||||
this.webHook.process(submission).catch(e => {
|
||||
this.logger.error({
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user