feat: Initial csv parsing for uploading rooms for a project. Need to style the upload form.
All checks were successful
CI / Linux Tests (push) Successful in 5m41s

This commit is contained in:
2026-02-05 16:39:40 -05:00
parent b2b5e32535
commit 57766c990e
16 changed files with 226 additions and 117 deletions

View File

@@ -1,3 +1,4 @@
import CSVParser
import DatabaseClient
import Dependencies
import Elementary
@@ -284,10 +285,18 @@ extension SiteRoute.View.ProjectRoute.RoomRoute {
on request: ViewController.Request,
projectID: Project.ID
) async -> AnySendableHTML {
@Dependency(\.csvParser) var csvParser
@Dependency(\.database) var database
switch self {
case .csv(let csv):
return await roomsView(on: request, projectID: projectID) {
let rooms = try await csvParser.parseRooms(csv)
_ = try await database.rooms.createMany(projectID, rooms)
}
// return EmptyHTML()
case .delete(let id):
return await ResultView {
try await database.rooms.delete(id)
@@ -298,7 +307,7 @@ extension SiteRoute.View.ProjectRoute.RoomRoute {
case .submit(let form):
return await roomsView(on: request, projectID: projectID) {
_ = try await database.rooms.create(form)
_ = try await database.rooms.create(projectID, form)
}
case .update(let id, let form):