From 075872c98fbd9a19e684a18b24f471bc1f78d1b1 Mon Sep 17 00:00:00 2001 From: physcik Date: Tue, 14 Apr 2026 15:49:44 +0500 Subject: ranged weapons db connection --- backend/src/Database/Connection.zig | 4 +++- backend/src/Database/RangedWeaponsAccessLayer.zig | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 backend/src/Database/RangedWeaponsAccessLayer.zig (limited to 'backend/src/Database') 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; +} -- cgit v1.3