1
0

fix deletion of forms if there have been visitors

This commit is contained in:
Michael Schramm 2023-12-11 16:47:52 +01:00
parent af18fd83ce
commit 2c9e1d3de0
5 changed files with 189 additions and 548 deletions

View File

@ -22,6 +22,8 @@ Template for next version
- update to node 20 (https://github.com/ohmyform/ohmyform/issues/228)
- fix missing python error in api (https://github.com/ohmyform/ohmyform/issues/199)
- [API] fix change user role (https://github.com/ohmyform/api/pull/49)
- [API] update sqlite to 5.1.6
- [API] delete visitors on form delete (https://github.com/ohmyform/ohmyform/issues/181)
## [1.0.3] - 2022-03-27

View File

@ -73,7 +73,7 @@
"rimraf": "^3.0.2",
"rxjs": "^7.5.4",
"serialize-error": "^8.1.0",
"sqlite3": "^5.0.2",
"sqlite3": "^5.1.6",
"typeorm": "^0.2.44"
},
"devDependencies": {

View File

@ -31,10 +31,10 @@ export class FormEntity {
@Column(() => AnalyticsEmbedded)
public analytics: AnalyticsEmbedded = new AnalyticsEmbedded()
@OneToMany(() => VisitorEntity, visitor => visitor.form)
@OneToMany(() => VisitorEntity, visitor => visitor.form, { cascade: true })
public visitors: VisitorEntity[]
@OneToMany(() => SubmissionEntity, submission => submission.form)
@OneToMany(() => SubmissionEntity, submission => submission.form, { cascade: true })
public submissions: SubmissionEntity[]
@OneToMany(() => FormFieldEntity, field => field.form, { eager: true, orphanedRowAction: 'delete', cascade: true })

View File

@ -3,6 +3,7 @@ import { InjectRepository } from '@nestjs/typeorm'
import { Repository } from 'typeorm'
import { FormEntity } from '../../entity/form.entity'
import { SubmissionEntity } from '../../entity/submission.entity'
import { VisitorEntity } from '../../entity/visitor.entity'
@Injectable()
export class FormDeleteService {
@ -11,12 +12,21 @@ export class FormDeleteService {
private readonly formRepository: Repository<FormEntity>,
@InjectRepository(SubmissionEntity)
private readonly submissionRepository: Repository<SubmissionEntity>,
@InjectRepository(VisitorEntity)
private readonly visitorRepository: Repository<VisitorEntity>,
) {
}
async delete(id: number): Promise<void> {
await this.submissionRepository.delete({
form: new FormEntity({ id }),
form: {
id,
},
})
await this.visitorRepository.delete({
form: {
id,
},
})
await this.formRepository.delete({

File diff suppressed because it is too large Load Diff