summaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
Diffstat (limited to 'backend')
-rw-r--r--backend/src/Database/RangedWeaponsAccessLayer.zig2
-rw-r--r--backend/src/Handler.zig7
-rw-r--r--backend/src/Models/RangedWeapon.zig2
-rw-r--r--backend/src/Models/User.zig6
-rw-r--r--backend/src/main.zig12
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);