Quellcode durchsuchen

Second attempt at uploading images. This time the imageData will come with the JSON data and get processed during the Create.

Had an issue assigning UUIDs on device with them being duplicated in the server database.
v2_uploadImages
admin vor 2 Jahren
Ursprung
Commit
64f9c4aac9
1 geänderte Dateien mit 24 neuen und 6 gelöschten Zeilen
  1. +24
    -6
      Sources/App/Controllers/FuelEntryV2Controller.swift

+ 24
- 6
Sources/App/Controllers/FuelEntryV2Controller.swift Datei anzeigen

@@ -38,16 +38,34 @@ struct FuelEntryV2Controller: RouteCollection {
}
func create(req: Request) async throws -> [FuelEntry] {
var fuelEntries = try req.content.decode([FuelEntry].self)
let fuelEntries = try await req.content.decode([FuelEntry].self)
let directory = DirectoryConfiguration.detect().workingDirectory + "Images/"
for index in fuelEntries.indices {
let imagePath = directory + (fuelEntries[index].id?.uuidString ?? "Unknown") + ".png"
fuelEntries[index].image = imagePath
var updatedFuelEntries: [FuelEntry] = []
for fuelEntry in fuelEntries {
let updatedFuelEntry = try await { () async throws -> FuelEntry in
var updatedFuelEntry = fuelEntry
if let imageData = updatedFuelEntry.imageData {
let imageFilename = "\(updatedFuelEntry.id!).png"
let tempImageURL = URL(fileURLWithPath: directory + imageFilename)
try await imageData.write(to: tempImageURL)
updatedFuelEntry.image = tempImageURL.absoluteString
}
do {
_ = try await updatedFuelEntry.save(on: req.db)
return updatedFuelEntry
} catch {
throw Abort(.internalServerError, reason: "Error saving FuelEntry: \(error)")
}
}()
updatedFuelEntries.append(updatedFuelEntry)
}
try await fuelEntries.create(on: req.db)
return fuelEntries
return updatedFuelEntries
}
func delete(req: Request) async throws -> HTTPStatus {


Laden…
Abbrechen
Speichern