56 lines
1.6 KiB
Swift
56 lines
1.6 KiB
Swift
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()
|
|
}
|
|
}
|