Explorar el Código

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 hace 2 años
padre
commit
64f9c4aac9
Se han modificado 1 ficheros con 24 adiciones y 6 borrados
  1. +24
    -6
      Sources/App/Controllers/FuelEntryV2Controller.swift

+ 24
- 6
Sources/App/Controllers/FuelEntryV2Controller.swift Ver fichero

@@ -38,16 +38,34 @@ struct FuelEntryV2Controller: RouteCollection {
} }
func create(req: Request) async throws -> [FuelEntry] { 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/" 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 { func delete(req: Request) async throws -> HTTPStatus {


Cargando…
Cancelar
Guardar