summaryrefslogtreecommitdiff
path: root/src/Bot.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/Bot.zig')
-rw-r--r--src/Bot.zig20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/Bot.zig b/src/Bot.zig
index adfafef..8e69579 100644
--- a/src/Bot.zig
+++ b/src/Bot.zig
@@ -136,6 +136,26 @@ fn call(
136 uri: Uri, 136 uri: Uri,
137 data: ?[]const u8, 137 data: ?[]const u8,
138) !Parsed(T) { 138) !Parsed(T) {
139 var tries: i8 = 0;
140 while (true) : (tries += 1) {
141 if (self.wrappedCall(T, method, uri, data)) |res| {
142 return res;
143 } else |err| {
144 std.log.warn("error when performing call: {}", .{err});
145 if (tries == 20) {
146 return err;
147 }
148 }
149 }
150}
151
152fn wrappedCall(
153 self: *Bot,
154 comptime T: type,
155 comptime method: HttpMethod,
156 uri: Uri,
157 data: ?[]const u8,
158) !Parsed(T) {
139 while (true) { 159 while (true) {
140 var request = try self.http_client.open(method, uri, .{ 160 var request = try self.http_client.open(method, uri, .{
141 .server_header_buffer = &self.server_header_buffer, 161 .server_header_buffer = &self.server_header_buffer,