diff options
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/build.zig.zon | 4 | ||||
| -rw-r--r-- | backend/src/Redis/Connection.zig | 24 | ||||
| -rw-r--r-- | backend/src/main.zig | 3 |
3 files changed, 18 insertions, 13 deletions
diff --git a/backend/build.zig.zon b/backend/build.zig.zon index b1423b1..911bb3d 100644 --- a/backend/build.zig.zon +++ b/backend/build.zig.zon @@ -44,10 +44,6 @@ .url = "git+https://github.com/zigster64/dotenv.zig?ref=main#7d50f9fe0ce223d94d180d5a5a49fe0df5bc3743", .hash = "dotenv-0.1.0-Q9TxeuEMAADw6cHl9uKbjwunS0PlYYc1yw9Ol82TwAAm", }, - .okredis = .{ - .url = "git+https://github.com/kristoff-it/zig-okredis?ref=master#f00a50311e5fcc5a688fc027bd0a7ebbe8e2f0cc", - .hash = "okredis-0.1.0-Cg726sgHBAClOCW_xaaqoS6m_uyiw3iD9Qj20AAzGcTL", - }, }, .paths = .{ "build.zig", diff --git a/backend/src/Redis/Connection.zig b/backend/src/Redis/Connection.zig index bde187b..b20903d 100644 --- a/backend/src/Redis/Connection.zig +++ b/backend/src/Redis/Connection.zig @@ -23,20 +23,28 @@ pub fn Disconnect() void { pub const Message = struct { Key: []const u8, - Value: []const u8 + Value: []const u8, + SecondsToLive: u16 }; pub fn WriteToTopic(topic: []const u8, message: Message) !void { - _ = redis.redisCommand(connection, "SET %s:%s %s", + _ = redis.redisCommand(connection, "SET %s:%s %s EX %d", topic.ptr, message.Key.ptr, - message.Value.ptr); + message.Value.ptr, + message.SecondsToLive); } -pub fn ReadFromTopic(topic: []const u8, Key: []const u8) !?[]const u8 { - const resp: *redis.redisReply = @alignCast(@ptrCast(redis.redisCommand(connection, "GET %s:%s", - topic.ptr, - Key.ptr))); +pub fn ReadFromTopic(topic: []const u8, Key: []const u8) ?[]const u8 { + const raw = redis.redisCommand(connection, "GET %s:%s", + topic.ptr, + Key.ptr); + if (raw == null) { + return null; + } + const resp: *redis.redisReply = @alignCast(@ptrCast(raw)); + if (resp.type != redis.REDIS_REPLY_STRING) { + return null; + } return std.mem.span(resp.str); } - diff --git a/backend/src/main.zig b/backend/src/main.zig index d1fbde2..9c4351f 100644 --- a/backend/src/main.zig +++ b/backend/src/main.zig @@ -27,9 +27,10 @@ pub fn main() !void { try redis.WriteToTopic("test", redis.Message { .Key = "xdd", .Value = "ddx", + .SecondsToLive = 10, }); - std.debug.print("redis response: {s}\n", .{try redis.ReadFromTopic("test", "xdd") orelse "not found"}); + std.debug.print("redis response: {s}\n", .{redis.ReadFromTopic("test", "xdd") orelse "not found"}); var router = try server.router(.{}); router.get("/", index, .{}); |
