diff options
| author | physcik <mynameisgennadiy@vk.com> | 2026-04-27 15:31:39 +0500 |
|---|---|---|
| committer | physcik <mynameisgennadiy@vk.com> | 2026-04-27 15:31:39 +0500 |
| commit | b5ce961b3ef30758f77e2487dc9b6ed2dd39de73 (patch) | |
| tree | d9d892fdd07b462f1b65495d8b9dbdc7f964b797 /backend/src/Database/RangedWeaponsAccessLayer.zig | |
| parent | b044c0354c46eadb9f4c66565779e9cb5ce92699 (diff) | |
Weapon description support
Diffstat (limited to 'backend/src/Database/RangedWeaponsAccessLayer.zig')
| -rw-r--r-- | backend/src/Database/RangedWeaponsAccessLayer.zig | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/backend/src/Database/RangedWeaponsAccessLayer.zig b/backend/src/Database/RangedWeaponsAccessLayer.zig index 34c71ea..6857581 100644 --- a/backend/src/Database/RangedWeaponsAccessLayer.zig +++ b/backend/src/Database/RangedWeaponsAccessLayer.zig @@ -5,6 +5,7 @@ const conn = @import("Connection.zig"); const std = @import("std"); const pg = @import("pg"); const model = @import("../Models/RangedWeapon.zig"); +const descriptionModel = @import("../Models/Description.zig"); pub fn GetAll(alloc: std.mem.Allocator) !std.ArrayList(model.RangedWeaponType) { const query = "SELECT * FROM RangedWeapons ORDER BY weapon_type"; @@ -104,3 +105,28 @@ pub fn Delete(displayName: []const u8) !void { displayName, }); } + +pub fn GetDescription(allocator: std.mem.Allocator, displayName: []const u8, language: []const u8) !descriptionModel.Description { + const query = "SELECT * FROM RangedWeaponsDescriptions WHERE id = $1 AND language = $2"; + var row = try conn.pool.row(query, .{displayName, language}) orelse { + return conn.ResultErrors.NotFound; + }; + const outp = try descriptionModel.Description.MapWithAlloc(allocator, &row.row); + try row.deinit(); + return outp; +} + +pub fn SetDescription(Model: descriptionModel.Description) !void { + const query = + \\ INSERT INTO RangedWeaponsDescriptions (id, language, contents) + \\ VALUES ($1, $2, $3) + \\ ON CONFLICT (id, language) + \\ DO UPDATE SET contents = EXCLUDED.contents + ; + + _ = try conn.pool.exec(query, .{ + Model.Id, + Model.Language, + Model.Contents, + }); +} |
