aboutsummaryrefslogtreecommitdiff
path: root/src/routes/api/image
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2026-05-20 10:16:50 +0200
committerNathan Reiner <nathan@nathanreiner.xyz>2026-05-20 10:16:50 +0200
commit44445734ba4a0f05564f808c2fd34a7f23c6fafb (patch)
tree3bd22add718620cbf931286f55137bcc666100be /src/routes/api/image
parent95ae9f15e1db335a7f8358d811ea37e2c89dd10f (diff)
Let's do a rewrite!
Created project structure and changed `build.zig` and added licence.
Diffstat (limited to 'src/routes/api/image')
-rw-r--r--src/routes/api/image/list.zig42
-rw-r--r--src/routes/api/image/load.zig15
-rw-r--r--src/routes/api/image/query.zig0
-rw-r--r--src/routes/api/image/remove.zig14
-rw-r--r--src/routes/api/image/root.zig6
-rw-r--r--src/routes/api/image/upload.zig17
6 files changed, 0 insertions, 94 deletions
diff --git a/src/routes/api/image/list.zig b/src/routes/api/image/list.zig
deleted file mode 100644
index 5d2eace..0000000
--- a/src/routes/api/image/list.zig
+++ /dev/null
@@ -1,42 +0,0 @@
-const std = @import("std");
-const memora = @import("memora");
-const Context = memora.Context;
-const Storage = memora.Storage;
-
-pub const access = .users;
-
-const ImageInfo = struct {
- id: []const u8,
- timestamp: ?i64,
-};
-
-const Result = struct {
- images: []ImageInfo,
-};
-
-pub fn get(ctx: *Context) !Result {
- var images: std.ArrayList(ImageInfo) = .empty;
-
- var images_list = ctx.storage.images.list();
- defer images_list.unlock();
-
- var locked = ctx.storage.images.first_by_timestamp();
- defer locked.unlock();
-
- var current = locked.value;
-
- while (current) |c| {
- const image = ctx.storage.images.items.items[c.index];
-
- try images.append(ctx.allocator, .{
- .id = try ctx.allocator.dupe(u8, image.id),
- .timestamp = image.timestamp,
- });
-
- current = c.next();
- }
-
- return .{
- .images = try images.toOwnedSlice(ctx.allocator),
- };
-}
diff --git a/src/routes/api/image/load.zig b/src/routes/api/image/load.zig
deleted file mode 100644
index 3ef25d6..0000000
--- a/src/routes/api/image/load.zig
+++ /dev/null
@@ -1,15 +0,0 @@
-const std = @import("std");
-
-const memora = @import("memora");
-const Context = memora.Context;
-const Storage = memora.Storage;
-const mime = @import("../../../mime.zig");
-
-pub const access = .users;
-
-pub fn get(ctx: *Context) !memora.Stream {
- const id = ctx.request.head.target["/api/image/load/".len..];
- var image = Storage.Image { .id = id, .timestamp = null };
- ctx.response.headers.content_type = comptime mime.content_types.get(".jpeg") orelse unreachable;
- return .from_file(try image.file(ctx.storage));
-}
diff --git a/src/routes/api/image/query.zig b/src/routes/api/image/query.zig
deleted file mode 100644
index e69de29..0000000
--- a/src/routes/api/image/query.zig
+++ /dev/null
diff --git a/src/routes/api/image/remove.zig b/src/routes/api/image/remove.zig
deleted file mode 100644
index d99cbb4..0000000
--- a/src/routes/api/image/remove.zig
+++ /dev/null
@@ -1,14 +0,0 @@
-const std = @import("std");
-
-const memora = @import("memora");
-const Context = memora.Context;
-
-pub const access = .users;
-
-const Body = struct {
- id: []const u8,
-};
-
-pub fn post(ctx: *Context, body: Body) anyerror!void {
- return ctx.storage.images.delete(ctx.storage, body.id);
-}
diff --git a/src/routes/api/image/root.zig b/src/routes/api/image/root.zig
deleted file mode 100644
index 931bb06..0000000
--- a/src/routes/api/image/root.zig
+++ /dev/null
@@ -1,6 +0,0 @@
-const HandlerInfo = @import("../../handler-info.zig");
-
-pub const upload: HandlerInfo = .from_type(@import("upload.zig"));
-pub const list: HandlerInfo = .from_type(@import("list.zig"));
-pub const load: HandlerInfo = .from_type(@import("load.zig"));
-pub const remove: HandlerInfo = .from_type(@import("remove.zig"));
diff --git a/src/routes/api/image/upload.zig b/src/routes/api/image/upload.zig
deleted file mode 100644
index 72c8a2d..0000000
--- a/src/routes/api/image/upload.zig
+++ /dev/null
@@ -1,17 +0,0 @@
-const std = @import("std");
-
-const memora = @import("memora");
-const Context = memora.Context;
-const Storage = memora.Storage;
-
-const log = std.log.scoped(.image_upload);
-
-pub const access = .users;
-
-pub fn post(ctx: *Context) !void {
- if (ctx.request.head.content_length) |length| {
- var buffer: [1024]u8 = undefined;
- const reader = try ctx.request.readerExpectContinue(&buffer);
- try ctx.storage.images.save(ctx.storage, reader, length);
- }
-}