diff options
| author | Ibrahim Muftee <ibrahim@muftee.net> | 2026-08-22 04:56:36 +0000 |
|---|---|---|
| committer | Ibrahim Muftee <ibrahim@muftee.net> | 2026-08-22 04:58:04 +0000 |
| commit | d103e8c8f6ed1194ba0706589c1ce339e97eff23 (patch) | |
| tree | b420c55e070e7b41a19b35bd0bdbbd167d6e7a64 /http.zig | |
| parent | dcd4483c277e6de60a94ed284f927e60511bf4cc (diff) | |
Begin login endpoint
Diffstat (limited to 'http.zig')
| -rw-r--r-- | http.zig | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -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", .{}); +} |
