+21
-6
backend/src/tap.zig
+21
-6
backend/src/tap.zig
···
8
const indexer = @import("indexer.zig");
9
const extractor = @import("extractor.zig");
10
11
-
const DOCUMENT_COLLECTION = "pub.leaflet.document";
12
-
const PUBLICATION_COLLECTION = "pub.leaflet.publication";
13
14
fn getTapHost() []const u8 {
15
return posix.getenv("TAP_HOST") orelse "leaflet-search-tap.fly.dev";
···
135
.create, .update => {
136
const record_obj = zat.json.getObject(parsed.value, "record.record") orelse return;
137
138
-
if (mem.eql(u8, rec.collection, DOCUMENT_COLLECTION)) {
139
processDocument(allocator, uri, did.raw, rec.rkey, record_obj, rec.collection) catch |err| {
140
std.debug.print("document processing error: {}\n", .{err});
141
};
142
-
} else if (mem.eql(u8, rec.collection, PUBLICATION_COLLECTION)) {
143
processPublication(allocator, uri, did.raw, rec.rkey, record_obj) catch |err| {
144
std.debug.print("publication processing error: {}\n", .{err});
145
};
146
}
147
},
148
.delete => {
149
-
if (mem.eql(u8, rec.collection, DOCUMENT_COLLECTION)) {
150
indexer.deleteDocument(uri);
151
std.debug.print("deleted document: {s}\n", .{uri});
152
-
} else if (mem.eql(u8, rec.collection, PUBLICATION_COLLECTION)) {
153
indexer.deletePublication(uri);
154
std.debug.print("deleted publication: {s}\n", .{uri});
155
}
···
8
const indexer = @import("indexer.zig");
9
const extractor = @import("extractor.zig");
10
11
+
// leaflet-specific collections
12
+
const LEAFLET_DOCUMENT = "pub.leaflet.document";
13
+
const LEAFLET_PUBLICATION = "pub.leaflet.publication";
14
+
15
+
// standard.site collections (cross-platform)
16
+
const STANDARD_DOCUMENT = "site.standard.document";
17
+
const STANDARD_PUBLICATION = "site.standard.publication";
18
+
19
+
fn isDocumentCollection(collection: []const u8) bool {
20
+
return mem.eql(u8, collection, LEAFLET_DOCUMENT) or
21
+
mem.eql(u8, collection, STANDARD_DOCUMENT);
22
+
}
23
+
24
+
fn isPublicationCollection(collection: []const u8) bool {
25
+
return mem.eql(u8, collection, LEAFLET_PUBLICATION) or
26
+
mem.eql(u8, collection, STANDARD_PUBLICATION);
27
+
}
28
29
fn getTapHost() []const u8 {
30
return posix.getenv("TAP_HOST") orelse "leaflet-search-tap.fly.dev";
···
150
.create, .update => {
151
const record_obj = zat.json.getObject(parsed.value, "record.record") orelse return;
152
153
+
if (isDocumentCollection(rec.collection)) {
154
processDocument(allocator, uri, did.raw, rec.rkey, record_obj, rec.collection) catch |err| {
155
std.debug.print("document processing error: {}\n", .{err});
156
};
157
+
} else if (isPublicationCollection(rec.collection)) {
158
processPublication(allocator, uri, did.raw, rec.rkey, record_obj) catch |err| {
159
std.debug.print("publication processing error: {}\n", .{err});
160
};
161
}
162
},
163
.delete => {
164
+
if (isDocumentCollection(rec.collection)) {
165
indexer.deleteDocument(uri);
166
std.debug.print("deleted document: {s}\n", .{uri});
167
+
} else if (isPublicationCollection(rec.collection)) {
168
indexer.deletePublication(uri);
169
std.debug.print("deleted publication: {s}\n", .{uri});
170
}