From 87eac42ba9d42d413d51d0842aedc6673983262d Mon Sep 17 00:00:00 2001 From: Mike Carman Date: Wed, 21 May 2025 13:43:49 -0400 Subject: [PATCH] Added tabletserial to database and responses --- .../UserInterfaceState.xcuserstate | Bin 108505 -> 115303 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 36 +++++++++++----- .../Controllers/FuelEntryV2Controller.swift | 9 ++-- Sources/App/Migrations/CreateFuelEntry.swift | 14 ++++++ Sources/App/Models/FuelEntry.swift | 13 ++++-- Sources/App/configure.swift | 40 +++++++++++++----- 6 files changed, 85 insertions(+), 27 deletions(-) diff --git a/.swiftpm/xcode/package.xcworkspace/xcuserdata/mcarman.xcuserdatad/UserInterfaceState.xcuserstate b/.swiftpm/xcode/package.xcworkspace/xcuserdata/mcarman.xcuserdatad/UserInterfaceState.xcuserstate index cd3e6207bf97eeef441d1335555c65fc5aba466c..d08feaa34e14fa4f1996782dadb5bb8ea6bea6bd 100644 GIT binary patch literal 115303 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 R6?5zV{m=jZ-$Okg|361C_lW=i literal 108505 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 NAOHW~hem($e*jFRS8xCT diff --git a/.swiftpm/xcode/xcuserdata/mcarman.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/.swiftpm/xcode/xcuserdata/mcarman.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index eef5c7d..922fb6f 100644 --- a/.swiftpm/xcode/xcuserdata/mcarman.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/.swiftpm/xcode/xcuserdata/mcarman.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -7,32 +7,48 @@ + + + + diff --git a/Sources/App/Controllers/FuelEntryV2Controller.swift b/Sources/App/Controllers/FuelEntryV2Controller.swift index d3f82a7..e343c56 100644 --- a/Sources/App/Controllers/FuelEntryV2Controller.swift +++ b/Sources/App/Controllers/FuelEntryV2Controller.swift @@ -275,6 +275,7 @@ struct FuelEntryV2Controller: RouteCollection { .field(\.$longitude) .field(\.$downloaded) .field(\.$loaddate) + .field(\.$tabletserial) .group(.and) { grp in grp.filter(\.$loaddate >= startdate) @@ -285,7 +286,7 @@ struct FuelEntryV2Controller: RouteCollection { .sort(\.$loaddate, .ascending) .range(lower: (paging["offset"] as! Int), upper: (paging["offset"] as! Int) + (paging["per"] as! Int)) .all().map{ - FuelEntry.Output(id: $0.id, timestamp: $0.timestamp, ssid: $0.userID, latitude: $0.latitude, longitude: $0.longitude, product: $0.product, make: $0.make, model: $0.model, serialNumber: $0.serialNumber, tankID: $0.tankID, fuelAmount: $0.fuelAmount, fuelType: $0.fuelType, isOverride: $0.isOverride, image: emptyData, loaddate: $0.loaddate) + FuelEntry.Output(id: $0.id, timestamp: $0.timestamp, ssid: $0.userID, latitude: $0.latitude, longitude: $0.longitude, product: $0.product, make: $0.make, model: $0.model, serialNumber: $0.serialNumber, tankID: $0.tankID, fuelAmount: $0.fuelAmount, fuelType: $0.fuelType, isOverride: $0.isOverride, image: emptyData, loaddate: $0.loaddate, tabletserial: $0.tabletserial ?? "") } let response = returnObj(data: query, meta: meta) return try await response.encodeResponse(for: req) @@ -365,6 +366,7 @@ struct FuelEntryV2Controller: RouteCollection { .field(\.$downloaded) .field(\.$loaddate) .field(\.$image) + .field(\.$tabletserial) .group(.and) { grp in if(enddate != nil) { grp.filter(\.$loaddate >= startdate) @@ -378,7 +380,7 @@ struct FuelEntryV2Controller: RouteCollection { .sort(\.$loaddate, .ascending) .range(lower: (paging["offset"] as! Int), upper: (paging["offset"] as! Int) + (paging["per"] as! Int)) .all().map{ - FuelEntry.Output(id: $0.id, timestamp: $0.timestamp, ssid: $0.userID, latitude: $0.latitude, longitude: $0.longitude, product: $0.product, make: $0.make, model: $0.model, serialNumber: $0.serialNumber, tankID: $0.tankID, fuelAmount: $0.fuelAmount, fuelType: $0.fuelType, isOverride: $0.isOverride, image: $0.image, loaddate: $0.loaddate) + FuelEntry.Output(id: $0.id, timestamp: $0.timestamp, ssid: $0.userID, latitude: $0.latitude, longitude: $0.longitude, product: $0.product, make: $0.make, model: $0.model, serialNumber: $0.serialNumber, tankID: $0.tankID, fuelAmount: $0.fuelAmount, fuelType: $0.fuelType, isOverride: $0.isOverride, image: $0.image, loaddate: $0.loaddate, tabletserial: $0.tabletserial ?? "") } let response = returnObj(data: query, meta: meta) return try await response.encodeResponse(for: req) @@ -434,6 +436,7 @@ struct FuelEntryV2Controller: RouteCollection { .field(\.$longitude) .field(\.$downloaded) .field(\.$loaddate) + .field(\.$tabletserial) .group(.and) { grp in grp.filter(\.$timestamp >= startdate ?? Calendar.current.startOfDay(for: Calendar.current.date(byAdding: .day, value: -2, to: Date())!)) @@ -444,7 +447,7 @@ struct FuelEntryV2Controller: RouteCollection { .sort(\.$loaddate, .ascending) .range(lower: (paging["offset"] as! Int), upper: (paging["offset"] as! Int) + (paging["per"] as! Int)) .all().map{ - FuelEntry.Output(id: $0.id, timestamp: $0.timestamp, ssid: $0.userID, latitude: $0.latitude, longitude: $0.longitude, product: $0.product, make: $0.make, model: $0.model, serialNumber: $0.serialNumber, tankID: $0.tankID, fuelAmount: $0.fuelAmount, fuelType: $0.fuelType, isOverride: $0.isOverride, image: emptyData, loaddate: $0.loaddate) + FuelEntry.Output(id: $0.id, timestamp: $0.timestamp, ssid: $0.userID, latitude: $0.latitude, longitude: $0.longitude, product: $0.product, make: $0.make, model: $0.model, serialNumber: $0.serialNumber, tankID: $0.tankID, fuelAmount: $0.fuelAmount, fuelType: $0.fuelType, isOverride: $0.isOverride, image: emptyData, loaddate: $0.loaddate, tabletserial: $0.tabletserial ?? "") } let response = returnObj(data: query, meta: meta) return try await response.encodeResponse(for: req) diff --git a/Sources/App/Migrations/CreateFuelEntry.swift b/Sources/App/Migrations/CreateFuelEntry.swift index 591435d..7c178f5 100755 --- a/Sources/App/Migrations/CreateFuelEntry.swift +++ b/Sources/App/Migrations/CreateFuelEntry.swift @@ -112,3 +112,17 @@ struct AddLoadDateAndPullDate: AsyncMigration { } } +struct AddDeviceSerial: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("fuel_entries") + .field("tablet_serial", .string) + .update() + } + + func revert(on database: Database) async throws { + try await database.schema("fuel_entries") + .deleteField("tablet_serial") + .update() + } +} + diff --git a/Sources/App/Models/FuelEntry.swift b/Sources/App/Models/FuelEntry.swift index a3e5a93..cebca8b 100755 --- a/Sources/App/Models/FuelEntry.swift +++ b/Sources/App/Models/FuelEntry.swift @@ -69,6 +69,7 @@ final class FuelEntry: Model, Content { let isOverride: Bool let image: Data? let loaddate: Date? + let tabletserial: String? } struct wimage: Content{ @@ -158,6 +159,9 @@ final class FuelEntry: Model, Content { @Field(key: "downloaded") var downloaded: Bool? + @Field(key: "tablet_serial") + var tabletserial: String? + @Timestamp(key: "loadDate", on: .create) var loaddate: Date? @Timestamp(key: "pullDate", on: .none) var pulldate: Date? @@ -165,7 +169,7 @@ final class FuelEntry: Model, Content { init() {} - init(id: UUID? = nil, timestamp: Date, userID: String, latitude: Double, longitude: Double, image: Data?, product: String, make: String, model: String, serialNumber: String, tankID: String, fuelAmount: Double, fuelType: String, isOverride: Bool, downloaded: Bool?) { //imageData: Data? + init(id: UUID? = nil, timestamp: Date, userID: String, latitude: Double, longitude: Double, image: Data?, product: String, make: String, model: String, serialNumber: String, tankID: String, fuelAmount: Double, fuelType: String, isOverride: Bool, downloaded: Bool? = nil, tabletserial: String? = nil) { //imageData: Data? self.id = id self.timestamp = timestamp self.userID = userID @@ -182,9 +186,10 @@ final class FuelEntry: Model, Content { self.isOverride = isOverride self.downloaded = downloaded ?? nil self.image = image ?? nil + self.tabletserial = tabletserial ?? nil // self.imageData = imageData } - init(id: UUID? = nil, timestamp: Date, userID: String, latitude: Double, longitude: Double, image: Data?, product: String, make: String, model: String, serialNumber: String, tankID: String, fuelAmount: Double, fuelType: String, isOverride: Bool) { //imageData: Data? + init(id: UUID? = nil, timestamp: Date, userID: String, latitude: Double, longitude: Double, image: Data?, product: String, make: String, model: String, serialNumber: String, tankID: String, fuelAmount: Double, fuelType: String, isOverride: Bool, tabletserial: String? = nil) { //imageData: Data? self.id = id self.timestamp = timestamp self.userID = userID @@ -201,9 +206,10 @@ final class FuelEntry: Model, Content { self.isOverride = isOverride self.downloaded = downloaded ?? nil self.image = image ?? nil + self.tabletserial = tabletserial ?? nil // self.imageData = imageData } - init(id: UUID? = nil, timestamp: Date, userID: String, latitude: Double, longitude: Double, product: String, make: String, model: String, serialNumber: String, tankID: String, fuelAmount: Double, fuelType: String, isOverride: Bool) { //imageData: Data? + init(id: UUID? = nil, timestamp: Date, userID: String, latitude: Double, longitude: Double, product: String, make: String, model: String, serialNumber: String, tankID: String, fuelAmount: Double, fuelType: String, isOverride: Bool, tabletserial: String? = nil) { //imageData: Data? self.id = id self.timestamp = timestamp self.userID = userID @@ -218,6 +224,7 @@ final class FuelEntry: Model, Content { self.fuelAmount = fuelAmount self.fuelType = fuelType self.isOverride = isOverride + self.tabletserial = tabletserial ?? nil // self.imageData = imageData } } diff --git a/Sources/App/configure.swift b/Sources/App/configure.swift index 073a191..e88b168 100755 --- a/Sources/App/configure.swift +++ b/Sources/App/configure.swift @@ -1,5 +1,7 @@ import Fluent import FluentPostgresDriver +import NIOSSL + import Vapor // configures your application @@ -8,17 +10,32 @@ public func configure(_ app: Application) async throws { // uncomment to serve files from /Public folder // app.middleware.use(FileMiddleware(publicDirectory: app.directory.publicDirectory)) app.routes.defaultMaxBodySize = "128mb" -// let timeout = HTTPClient.Configuration.Timeout(connect: .seconds(300), read: .seconds(300)) -// app.http.client.configuration.timeout = timeout - app.databases.use(.postgres(hostname: "127.0.0.1", port: 5432, username: "mcarman", password: "@ng31F@rm0823262", database: "fueling"), as: .psql) -// app.databases.use(DatabaseConfigurationFactory.postgres(configuration: .init( -// hostname: Environment.get("DATABASE_HOST") ?? "localhost", -// port: Environment.get("DATABASE_PORT").flatMap(Int.init(_:)) ?? 5433, -// username: Environment.get("DATABASE_USERNAME") ?? "mcarman", -// password: Environment.get("DATABASE_PASSWORD") ?? "@ng31F@rm0823262", -// database: Environment.get("DATABASE_NAME") ?? "fueling", -// tls: .disable) -// ), as: .psql) + let timeout = HTTPClient.Configuration.Timeout(connect: .seconds(300), read: .seconds(300)) + app.http.client.configuration.timeout = timeout + + let envHost = Environment.get("DATABASE_HOST") ?? "127.0.0.1" + var envPort: Int + switch app.environment { + case .development: + envPort = 5433 + default: + envPort = 5432 + } + let envUsername = Environment.get("DATABASE_USERNAME") ?? "mcarman" + let envPassword = Environment.get("DATABASE_PASSWORD") ?? "@ng31F@rm0823262" + let envDB = Environment.get("DATABASE_NAME") ?? "fueling" + + app.databases.use(DatabaseConfigurationFactory.postgres(configuration: .init( + hostname: envHost, + port: envPort, + username: envUsername, + password: envPassword, + database: envDB) + ), as: .psql) + + +// app.databases.use(.postgres(hostname: "127.0.0.1", port: 5432, username: "mcarman", password: "@ng31F@rm0823262", database: "fueling"), as: .psql) + app.http.server.configuration.port = 3002 app.migrations.add(CreateFuelEntry()) app.migrations.add(AddLatitudeAndLongitudeAndRemoveGpsLocationAndImage()) @@ -32,6 +49,7 @@ public func configure(_ app: Application) async throws { app.migrations.add(UpdateUser2_AddTokenfield()) app.migrations.add(UpdateUser3_RemoveTokenfield()) app.migrations.add(AddLoadDateAndPullDate()) + app.migrations.add(AddDeviceSerial()) try await app.autoMigrate().get() // register routes