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