Sfoglia il codice sorgente

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 2 anni fa
parent
commit
64f9c4aac9
1 ha cambiato i file con 24 aggiunte e 6 eliminazioni
  1. +24
    -6
      Sources/App/Controllers/FuelEntryV2Controller.swift

+ 24
- 6
Sources/App/Controllers/FuelEntryV2Controller.swift Vedi File

@@ -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 {


Caricamento…
Annulla
Salva