import DatabaseClientLive import Dependencies import Fluent import FluentSQLiteDriver import Leaf import NIOSSL import SharedModels import Vapor // configures your application public func configure(_ app: Application) async throws { // uncomment to serve files from /Public folder app.middleware.use(FileMiddleware(publicDirectory: app.directory.publicDirectory)) app.middleware.use(app.sessions.middleware) // app.middleware.use(User.sessionAuthenticator()) #if DEBUG app.lifecycle.use(BrowserSyncHandler()) #endif switch app.environment { case .production, .development: app.databases.use(DatabaseConfigurationFactory.sqlite(.file("db.sqlite")), as: .sqlite) default: app.databases.use(DatabaseConfigurationFactory.sqlite(.memory), as: .sqlite) } let databaseClient = DatabaseClient.live(database: app.db) try await app.migrations.add(databaseClient.migrations()) // app.migrations.add(Vendor.Migrate()) // app.migrations.add(VendorBranch.Migrate()) // app.migrations.add(Employee.Migrate()) // app.migrations.add(User.Migrate()) // app.migrations.add(UserToken.Migrate()) // app.migrations.add(PurchaseOrder.Migrate()) app.views.use(.leaf) try withDependencies { $0.database = databaseClient // $0.employees = .live(database: app.db(.sqlite)) // $0.purchaseOrders = .live(database: app.db(.sqlite)) // $0.users = .live(database: app.db(.sqlite)) // $0.vendorBranches = .live(database: app.db(.sqlite)) // $0.vendors = .live(database: app.db(.sqlite)) } operation: { // register routes try routes(app) } if app.environment != .production { try await app.autoMigrate() } }