diff options
| author | physcik <mynameisgennadiy@vk.com> | 2026-04-20 21:52:20 +0500 |
|---|---|---|
| committer | physcik <mynameisgennadiy@vk.com> | 2026-04-20 21:52:20 +0500 |
| commit | d46bf56209ca250fc4108af46375359652ba7fd8 (patch) | |
| tree | e58eabb502abfe839ac839c39d2c92896d130b43 | |
| parent | 6898919979c914be4c4650158fe0451a21349bb5 (diff) | |
Cleanup
| -rw-r--r-- | backend/src/API/AuthenticationAPI.zig | 12 | ||||
| -rw-r--r-- | backend/src/Authentication/Tokens.zig | 16 | ||||
| -rw-r--r-- | backend/src/Handler.zig | 2 | ||||
| -rw-r--r-- | backend/src/main.zig | 8 |
4 files changed, 25 insertions, 13 deletions
diff --git a/backend/src/API/AuthenticationAPI.zig b/backend/src/API/AuthenticationAPI.zig index 9b45ff4..80988aa 100644 --- a/backend/src/API/AuthenticationAPI.zig +++ b/backend/src/API/AuthenticationAPI.zig @@ -7,10 +7,22 @@ const Handler = @import("../Handler.zig"); const Tokens = @import("../Authentication/Tokens.zig"); pub fn RegisterEndpoints(router: *httpz.Router(*Handler.Handler,*const fn (*Handler.RequestData, *httpz.request.Request, *httpz.response.Response) anyerror!void)) void { + router.get("/auth", getUser, .{}); router.post("/auth/register", register, .{}); router.post("/auth/login", login, .{}); } +fn getUser(data: *Handler.RequestData, _: *httpz.Request, res: *httpz.Response) !void { + if (data.User == null) { + try res.json(.{.status = "Unauthnticated"}, .{}); + return; + } + try res.json(.{ + .Username = data.User.?.Username, + .Role = data.User.?.Role, + }, .{}); +} + fn register(_: *Handler.RequestData, req: *httpz.Request, res: *httpz.Response) !void { var body = try req.json(model.RequestBody) orelse { res.setStatus(.bad_request); diff --git a/backend/src/Authentication/Tokens.zig b/backend/src/Authentication/Tokens.zig index 37bfd5a..a20c200 100644 --- a/backend/src/Authentication/Tokens.zig +++ b/backend/src/Authentication/Tokens.zig @@ -8,6 +8,10 @@ const token_ttl: u16 = 43_200; // 12 hours var prng: std.Random.DefaultPrng= undefined; var rnd: std.Random = undefined; +const errors = error { + NotFound, +}; + pub fn Init() !void { // Random enough var seed: u64 = undefined; @@ -16,7 +20,7 @@ pub fn Init() !void { rnd = prng.random(); } -/// Generates a new token in the heap. Expects [64]u8 as an input +/// Generates a new token in the stack. Expects [64]u8 as an input fn generateSessionToken(buf: []u8) []u8 { for (0..64) |i| { buf[i] = std.Random.intRangeAtMost(rnd, u8, 'A', 'z'); @@ -34,7 +38,7 @@ pub fn GenerateNewSession(allocator: std.mem.Allocator, user: userModel.User) ![ // Redis cache var string: std.io.Writer.Allocating = .init(allocator); defer string.deinit(); - try string.writer.print("{f}", .{std.json.fmt(user, .{})}); + try string.writer.print("{f}", .{ std.json.fmt(user, .{}) }); try redis.WriteToTopic(topicName, redis.Message { .Key = token, .Value = string.written(), @@ -46,12 +50,12 @@ pub fn GenerateNewSession(allocator: std.mem.Allocator, user: userModel.User) ![ pub fn GetUserFromToken(allocator: std.mem.Allocator, token: []const u8) !?std.json.Parsed(userModel.User) { const saved = try redis.ReadFromTopic(allocator, topicName, token) orelse { - std.debug.print("The token was not found \n", .{}); - return null; + // std.debug.print("The token was not found \n", .{}); + return errors.NotFound; }; - std.debug.print("FromRedis: {s}\n", .{ saved }); + const parsed = try std.json.parseFromSlice( - userModel.User, + userModel.User, allocator, saved, .{ diff --git a/backend/src/Handler.zig b/backend/src/Handler.zig index 4623d36..22e9920 100644 --- a/backend/src/Handler.zig +++ b/backend/src/Handler.zig @@ -29,7 +29,7 @@ pub const RequestData = struct { pub const Handler = struct { pub fn dispatch(_: *Handler, action: httpz.Action(*RequestData), req: *httpz.Request, res: *httpz.Response) !void { var data = try RequestData.Init(req); - std.debug.print("Data: {any}\n", .{ data }); + // std.debug.print("Data: {any}\n", .{ data }); try action(&data, req, res); std.debug.print("{any} {s}: {d}\n", .{req.method, req.url.raw, res.status}); } diff --git a/backend/src/main.zig b/backend/src/main.zig index ff90540..6def1a1 100644 --- a/backend/src/main.zig +++ b/backend/src/main.zig @@ -40,12 +40,8 @@ pub fn main() !void { try server.listen(); } -fn index(data: *handler.RequestData, _: *httpz.Request, res: *httpz.Response) !void { - if (data.User == null) { - try res.json(.{.status = "Unauthnticated"}, .{}); - return; - } - try res.json(data.User, .{}); +fn index(_: *handler.RequestData, _: *httpz.Request, res: *httpz.Response) !void { + try res.json(.{.Message = "Ok"}, .{}); } test "TestRunner" { |
