|
@@ -70,6 +70,47 @@ app.get("queries") { req async throws -> [World] in
|
|
return worlds
|
|
return worlds
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// Database Updates test
|
|
|
|
+//
|
|
|
|
+app.get("updates") { req async throws -> [World] in
|
|
|
|
+ let queries = (req.query["queries"] ?? 1).bounded(to: 1...500)
|
|
|
|
+
|
|
|
|
+ var worlds: [World] = []
|
|
|
|
+
|
|
|
|
+ let db = req.db(pools)
|
|
|
|
+
|
|
|
|
+ for _ in queries {
|
|
|
|
+ // Get
|
|
|
|
+ //
|
|
|
|
+ let rows = try await db.query(
|
|
|
|
+ "SELECT id, randomnumber FROM World WHERE id = $1 LIMIT 1",
|
|
|
|
+ [PostgresData(int32: .random(in: 1...10_000))]
|
|
|
|
+ ).get()
|
|
|
|
+
|
|
|
|
+ guard let row = rows.first else {
|
|
|
|
+ throw Abort(.notFound)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var world = World(
|
|
|
|
+ id: row.column("id")!.int32!,
|
|
|
|
+ randomnumber: row.column("randomnumber")!.int!
|
|
|
|
+ )
|
|
|
|
+
|
|
|
|
+ // Update
|
|
|
|
+ //
|
|
|
|
+ world.randomnumber = .random(in: 1...10_000)
|
|
|
|
+
|
|
|
|
+ _ = try await db.query(
|
|
|
|
+ "UPDATE World SET randomnumber = $1 WHERE id = $2",
|
|
|
|
+ [PostgresData(int: world.randomnumber), PostgresData(int32: world.id!)]
|
|
|
|
+ ).get()
|
|
|
|
+
|
|
|
|
+ worlds.append(world)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return worlds
|
|
|
|
+}
|
|
|
|
+
|
|
extension Int: Sequence {
|
|
extension Int: Sequence {
|
|
public func makeIterator() -> CountableRange<Int>.Iterator {
|
|
public func makeIterator() -> CountableRange<Int>.Iterator {
|
|
return (0..<self).makeIterator()
|
|
return (0..<self).makeIterator()
|