diff options
| author | physcik <mynameisgennadiy@vk.com> | 2026-04-23 14:15:52 +0500 |
|---|---|---|
| committer | physcik <mynameisgennadiy@vk.com> | 2026-04-23 14:15:52 +0500 |
| commit | c99fc297e8b66273d6210bed0812efab399ba13b (patch) | |
| tree | 7275cc75244cc43a1e1ef28f2eb13878bd2225ad /backend/src | |
| parent | 68f3941b17ce80f486d9dbaedbe3b4aa8746dff8 (diff) | |
Weapons index
Diffstat (limited to 'backend/src')
| -rw-r--r-- | backend/src/Database/RangedWeaponsAccessLayer.zig | 2 | ||||
| -rw-r--r-- | backend/src/Handler.zig | 7 | ||||
| -rw-r--r-- | backend/src/Models/RangedWeapon.zig | 2 | ||||
| -rw-r--r-- | backend/src/Models/User.zig | 6 | ||||
| -rw-r--r-- | backend/src/main.zig | 12 |
5 files changed, 22 insertions, 7 deletions
diff --git a/backend/src/Database/RangedWeaponsAccessLayer.zig b/backend/src/Database/RangedWeaponsAccessLayer.zig index 8d86840..34c71ea 100644 --- a/backend/src/Database/RangedWeaponsAccessLayer.zig +++ b/backend/src/Database/RangedWeaponsAccessLayer.zig @@ -7,7 +7,7 @@ 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"; + const query = "SELECT * FROM RangedWeapons ORDER BY weapon_type"; var result = try conn.pool.query(query, .{}); defer _ = result.deinit(); diff --git a/backend/src/Handler.zig b/backend/src/Handler.zig index dfd884d..3e40cf8 100644 --- a/backend/src/Handler.zig +++ b/backend/src/Handler.zig @@ -8,7 +8,7 @@ pub const RequestData = struct { pub fn Init(req: *httpz.Request) !RequestData { return .{ - .User = getUser(req), + .User = try getUser(req), }; } @@ -27,6 +27,11 @@ pub const RequestData = struct { return parsed.value; } + + pub fn CanUserAccess(self: RequestData, minimalRole: userModel.Role) bool { + if (self.User == null) return false; + return self.User.?.Role >= minimalRole; + } }; pub const Handler = struct { diff --git a/backend/src/Models/RangedWeapon.zig b/backend/src/Models/RangedWeapon.zig index b2c15cd..36e750e 100644 --- a/backend/src/Models/RangedWeapon.zig +++ b/backend/src/Models/RangedWeapon.zig @@ -11,7 +11,7 @@ pub const RangedWeaponType = struct { Avaliability: []const u8, Damage: []const u8, Ammunition: []const u8, - NumberOfShots: u31, + NumberOfShots: u32, RateOfFire: u32, Reliability: []const u8, diff --git a/backend/src/Models/User.zig b/backend/src/Models/User.zig index a52186d..e7550b7 100644 --- a/backend/src/Models/User.zig +++ b/backend/src/Models/User.zig @@ -11,9 +11,9 @@ const RolesMap = std.static_string_map.StaticStringMap(Role).initComptime(.{ .{ "editor", .editor }, }); -pub const Role = enum { - user, - editor, +pub const Role = enum (u8) { + user = 0, + editor = 1, pub fn ToString(self: Role) []const u8 { return switch (self) { diff --git a/backend/src/main.zig b/backend/src/main.zig index 6def1a1..86e84cb 100644 --- a/backend/src/main.zig +++ b/backend/src/main.zig @@ -26,12 +26,22 @@ pub fn main() !void { .address = .all(6969), }, &httpHandler); + const cors = try server.middleware(httpz.middleware.Cors, .{ + .origin = "*", + .methods = "GET,POST,PUT,DELETE,OPTIONS", + .headers = "authorization,content-type", + }); + defer { server.stop(); server.deinit(); } - var router = try server.router(.{}); + var router = try server.router(.{ + .middlewares = &.{ + cors + } + }); router.get("/", index, .{}); @import("API/WeaponsAPI.zig").RegisterEndpoints(router); |
