From d103e8c8f6ed1194ba0706589c1ce339e97eff23 Mon Sep 17 00:00:00 2001 From: Ibrahim Muftee Date: Sat, 22 Aug 2026 04:56:36 +0000 Subject: Begin login endpoint --- http.zig | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'http.zig') diff --git a/http.zig b/http.zig index 74a1341..3ca515f 100644 --- a/http.zig +++ b/http.zig @@ -6,6 +6,11 @@ const Request = std.http.Server.Request; const MAX_BUF = 1024; +const Endpoint = enum { + root_get, + login_get, +}; + pub fn main(init: std.process.Init) !void { const io = init.io; @@ -48,7 +53,37 @@ fn accept(stream: net.Stream, io: Io) !void { } } +fn endpointFromRequest(request: *Request) !Endpoint { + const head = request.head; + if (head.method == .GET and std.mem.eql(u8, head.target, "/")) { + return .root_get; + } else if (head.method == .GET and std.mem.eql(u8, head.target, "/login")) { + return .login_get; + } + return error.InvalidEndpoint; +} + fn serveHTTP(request: *Request) !void { log.info("Received request: {s}", .{request.head.target}); + + const endpoint = endpointFromRequest(request) catch { + try respondNotFound(request); + return; + }; + switch (endpoint) { + .root_get => try handleRoot(request), + .login_get => try handleLogin(request), + } +} + +fn respondNotFound(request: *Request) !void { + try request.respond("", .{ .status = .not_found }); +} + +fn handleRoot(request: *Request) !void { try request.respond("Welcome to Coinvane!\n", .{}); } + +fn handleLogin(request: *Request) !void { + try request.respond("Login page\n", .{}); +} -- cgit v1.2.3