Skip to content
This repository was archived by the owner on Dec 27, 2021. It is now read-only.

Commit fc346b5

Browse files
committed
will save form
1 parent 5c8f090 commit fc346b5

3 files changed

Lines changed: 8 additions & 1 deletion

File tree

Sources/ViewKit/Form/Forms/ModelForm.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public protocol ModelForm: Form {
1414
func read(from: Model)
1515
func write(to: Model)
1616

17+
func willSave(req: Request, model: Model) -> EventLoopFuture<Void>
1718
func didSave(req: Request, model: Model) -> EventLoopFuture<Void>
1819
}
1920

@@ -28,6 +29,10 @@ public extension ModelForm {
2829
])
2930
}
3031

32+
func willSave(req: Request, model: Model) -> EventLoopFuture<Void> {
33+
req.eventLoop.future()
34+
}
35+
3136
func didSave(req: Request, model: Model) -> EventLoopFuture<Void> {
3237
req.eventLoop.future()
3338
}

Sources/ViewKit/ViewController/Create/CreateViewController+Public.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ public extension CreateViewController {
9090
let model = Model()
9191
form.write(to: model as! CreateForm.Model)
9292

93-
return beforeCreate(req: req, model: model, form: form)
93+
return form.willSave(req: req, model: model as! CreateForm.Model)
94+
.flatMap { beforeCreate(req: req, model: model, form: form) }
9495
.flatMap { model in model.create(on: req.db).map { model } }
9596
.flatMap { model in form.didSave(req: req, model: model as! CreateForm.Model ).map { model } }
9697
.flatMap { afterCreate(req: req, form: form, model: $0) }

Sources/ViewKit/ViewController/Update/UpdateViewController+Public.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ public extension UpdateViewController {
9595
}
9696
return findBy(id, on: req.db)
9797
.map { form.write(to: $0 as! UpdateForm.Model); return $0; }
98+
.flatMap { model in form.willSave(req: req, model: model as! UpdateForm.Model).map { model } }
9899
.flatMap { beforeUpdate(req: req, model: $0, form: form) }
99100
.flatMap { model in model.update(on: req.db).map { model } }
100101
.flatMap { model in form.didSave(req: req, model: model as! UpdateForm.Model).map { model } }

0 commit comments

Comments
 (0)