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.zig15
2 files changed, 15 insertions, 4 deletions
diff --git a/backend/src/Database/Connection.zig b/backend/src/Database/Connection.zig
index 736c4e6..623165f 100644
--- a/backend/src/Database/Connection.zig
+++ b/backend/src/Database/Connection.zig
@@ -2,6 +2,10 @@ const std = @import("std");
const pg = @import("pg");
const dotenv = @import("dotenv");
+pub const ResultErrors = error {
+ NotFound,
+};
+
pub var pool: *pg.Pool = undefined;
pub fn Connect(alloc: std.mem.Allocator) !void {
diff --git a/backend/src/Database/RangedWeaponsAccessLayer.zig b/backend/src/Database/RangedWeaponsAccessLayer.zig
index ed35064..ca41197 100644
--- a/backend/src/Database/RangedWeaponsAccessLayer.zig
+++ b/backend/src/Database/RangedWeaponsAccessLayer.zig
@@ -13,12 +13,19 @@ pub fn GetAll(alloc: std.mem.Allocator) !std.ArrayList(model.RangedWeaponType) {
var outp: std.ArrayList(model.RangedWeaponType) = .empty;
while (try result.next()) |row| {
- const newRW = try model.RangedWeaponType.Map(&row);
+ const newRW = try model.RangedWeaponType.MapWithAlloc(alloc, &row);
try outp.append(alloc, newRW);
}
return outp;
}
-// pub fn GetByDisplayName(alloc: std.mem.Allocator, displayName: []const u8) !model.RangedWeaponType {
- // const query = "SELECT * FROM RangedWeapons WHERE Id = ";
-// }
+pub fn GetByDisplayName(allocator: std.mem.Allocator, displayName: []const u8) !model.RangedWeaponType {
+ const query = "SELECT * FROM RangedWeapons WHERE Id = $1";
+ var row = try conn.pool.row(query, .{displayName}) orelse {
+ return conn.ResultErrors.NotFound;
+ };
+
+ const outp = try model.RangedWeaponType.MapWithAlloc(allocator, &row.row);
+ try row.deinit();
+ return outp;
+}