diff options
Diffstat (limited to 'backend/src/Database')
| -rw-r--r-- | backend/src/Database/Connection.zig | 4 | ||||
| -rw-r--r-- | backend/src/Database/RangedWeaponsAccessLayer.zig | 20 |
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; +} |
