Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import FluentPostgreSQL
- extension QueryBuilder where Result: Model,
- Result.Database == Database,
- Database.Query: FluentSQLQuery,
- Database.QueryField: SQLColumnIdentifier,
- Database.QueryField: Hashable,
- Database.QueryData == Dictionary<String, Database.Query.Expression> {
- public func update<T>(_ keyPath: WritableKeyPath<Result, T>, to value: T) -> Future<Void> where T: Encodable {
- Database.queryDataSet(Database.queryField(.keyPath(keyPath)), to: value, on: &query)
- return run(Database.queryActionUpdate)
- }
- public func update(_ data: [Database.QueryField: Database.Query.Expression.Bind]) -> Future<Void> {
- var values: Database.QueryData = [:]
- for (field, value) in data {
- values[field.identifier.string] = .bind(value)
- }
- Database.queryDataApply(values, to: &query)
- return run(Database.queryActionUpdate)
- }
- }
Add Comment
Please, Sign In to add comment