Guest User

Untitled

a guest
Jun 21st, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. import FluentPostgreSQL
  2.  
  3. extension QueryBuilder where Result: Model,
  4. Result.Database == Database,
  5. Database.Query: FluentSQLQuery,
  6. Database.QueryField: SQLColumnIdentifier,
  7. Database.QueryField: Hashable,
  8. Database.QueryData == Dictionary<String, Database.Query.Expression> {
  9. public func update<T>(_ keyPath: WritableKeyPath<Result, T>, to value: T) -> Future<Void> where T: Encodable {
  10. Database.queryDataSet(Database.queryField(.keyPath(keyPath)), to: value, on: &query)
  11. return run(Database.queryActionUpdate)
  12. }
  13.  
  14. public func update(_ data: [Database.QueryField: Database.Query.Expression.Bind]) -> Future<Void> {
  15. var values: Database.QueryData = [:]
  16. for (field, value) in data {
  17. values[field.identifier.string] = .bind(value)
  18. }
  19.  
  20. Database.queryDataApply(values, to: &query)
  21. return run(Database.queryActionUpdate)
  22. }
  23. }
Add Comment
Please, Sign In to add comment