diff --git a/.swiftpm/xcode/package.xcworkspace/xcuserdata/mcarman.xcuserdatad/UserInterfaceState.xcuserstate b/.swiftpm/xcode/package.xcworkspace/xcuserdata/mcarman.xcuserdatad/UserInterfaceState.xcuserstate index 27ae840..9007c51 100644 Binary files a/.swiftpm/xcode/package.xcworkspace/xcuserdata/mcarman.xcuserdatad/UserInterfaceState.xcuserstate and b/.swiftpm/xcode/package.xcworkspace/xcuserdata/mcarman.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Sources/App/Controllers/V2.1/FuelEntryControllerV2_1.swift b/Sources/App/Controllers/V2.1/FuelEntryControllerV2_1.swift index 044107d..c35dc19 100644 --- a/Sources/App/Controllers/V2.1/FuelEntryControllerV2_1.swift +++ b/Sources/App/Controllers/V2.1/FuelEntryControllerV2_1.swift @@ -645,27 +645,31 @@ struct FuelEntryV2ControllerV2_1: RouteCollection { func create(req: Request) async throws -> [FuelEntry] { - let fuelEntry = try req.content.decode([FuelEntry].self) + let fuelEntry = try req.content.decode([FuelEntry.V2_1_Input].self) + var results: [FuelEntry] = [] for entry in fuelEntry { + let input = try FuelEntry.init(from: entry) let data = entry.image ?? nil let length = data?.count if(data == nil || length == 0){ - entry.image = nil + input.image = nil } if(entry.id != nil){ - let dbentry = try await FuelEntry.find(entry.id!, on: req.db) - if(dbentry != nil){ - entry._$idExists = true + if (try await FuelEntry.find(entry.id!, on: req.db)) != nil { + input._$id.exists = true + } else { + input._$idExists = false } } - entry.save(on: req.db).whenFailure({ error in + input.save(on: req.db).whenFailure({ error in }) + results.append(input) } // try await fuelEntry.create(on: req.db) - return fuelEntry + return results }