summaryrefslogtreecommitdiff
path: root/backend/src/Database
diff options
context:
space:
mode:
Diffstat (limited to 'backend/src/Database')
-rw-r--r--backend/src/Database/Connection.zig4
-rw-r--r--backend/src/Database/RangedWeaponsAccessLayer.zig20
2 files changed, 23 insertions, 1 deletions
diff --git a/backend/src/Database/Connection.zig b/backend/src/Database/Connection.zig
index 638d92b..736c4e6 100644
--- a/backend/src/Database/Connection.zig
+++ b/backend/src/Database/Connection.zig
@@ -2,7 +2,7 @@ const std = @import("std");
const pg = @import("pg");
const dotenv = @import("dotenv");
-var pool: *pg.Pool = undefined;
+pub var pool: *pg.Pool = undefined;
pub fn Connect(alloc: std.mem.Allocator) !void {
var env = try dotenv.init(alloc, ".env");
@@ -26,3 +26,5 @@ pub fn Connect(alloc: std.mem.Allocator) !void {
pub fn Disconnect() void {
pool.deinit();
}
+
+pub const RangedWeapons = @import("RangedWeaponsAccessLayer.zig");
diff --git a/backend/src/Database/RangedWeaponsAccessLayer.zig b/backend/src/Database/RangedWeaponsAccessLayer.zig
new file mode 100644
index 0000000..a99d1c1
--- /dev/null
+++ b/backend/src/Database/RangedWeaponsAccessLayer.zig
@@ -0,0 +1,20 @@
+// You are not supposed to include this file. To access this you should use
+// Connection.RangedWeapons.
+
+const conn = @import("Connection.zig");
+const std = @import("std");
+const pg = @import("pg");
+const model = @import("../Models/RangedWeapon.zig");
+
+pub fn GetAll(alloc: std.mem.Allocator) !std.ArrayList(model.RangedWeaponType) {
+ const query = "SELECT * FROM RangedWeapons";
+ var result = try conn.pool.query(query, .{});
+ defer _ = result.deinit();
+
+ var outp: std.ArrayList(model.RangedWeaponType) = .empty;
+ while (try result.next()) |row| {
+ const newRW = try model.RangedWeaponType.Map(&row);
+ try outp.append(alloc, newRW);
+ }
+ return outp;
+}