Dev #8
@@ -10,19 +10,20 @@ import '../models/geoposition.dart';
|
|||||||
import '../models/log.dart';
|
import '../models/log.dart';
|
||||||
|
|
||||||
class DatabaseProvider {
|
class DatabaseProvider {
|
||||||
late Connection _dbConnection;
|
|
||||||
|
|
||||||
|
DatabaseProvider({required this.dotEnv});
|
||||||
|
late Connection _dbConnection;
|
||||||
|
final DotEnv dotEnv;
|
||||||
final Map<String, String> _shareLinks = {};
|
final Map<String, String> _shareLinks = {};
|
||||||
final _uuid = const Uuid();
|
final _uuid = const Uuid();
|
||||||
|
|
||||||
Future<void> initialize() async {
|
Future<void> initialize() async {
|
||||||
final dotenv = DotEnv();
|
|
||||||
|
|
||||||
final host = dotenv['POSTGRES_HOST'] ?? 'db';
|
final host = dotEnv['POSTGRES_HOST'] ?? 'db';
|
||||||
final port = int.parse(dotenv['POSTGRES_PORT'] ?? '5432');
|
final port = int.parse(dotEnv['POSTGRES_PORT'] ?? '5432');
|
||||||
final databaseName = dotenv['POSTGRES_DB'] ?? 'family_safety';
|
final databaseName = dotEnv['POSTGRES_DB'] ?? 'family_safety';
|
||||||
final username = dotenv['POSTGRES_USER'] ?? 'postgres';
|
final username = dotEnv['POSTGRES_USER'] ?? 'postgres';
|
||||||
final password = dotenv['POSTGRES_PASSWORD'] ?? 'postgres';
|
final password = dotEnv['POSTGRES_PASSWORD'] ?? 'postgres';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final defaultConnection = await Connection.open(
|
final defaultConnection = await Connection.open(
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ import 'dart:io';
|
|||||||
class AuthRoutes {
|
class AuthRoutes {
|
||||||
final DatabaseProvider database;
|
final DatabaseProvider database;
|
||||||
final Map<String, DateTime> _lastRequest = {};
|
final Map<String, DateTime> _lastRequest = {};
|
||||||
|
AuthRoutes({required this.database,required this.dotEnv});
|
||||||
AuthRoutes(this.database);
|
final DotEnv dotEnv;
|
||||||
|
|
||||||
Router get routes {
|
Router get routes {
|
||||||
final router = Router();
|
final router = Router();
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import 'dart:convert';
|
|||||||
class GeoRoutes {
|
class GeoRoutes {
|
||||||
final DatabaseProvider database;
|
final DatabaseProvider database;
|
||||||
|
|
||||||
GeoRoutes(this.database);
|
GeoRoutes({required this.database});
|
||||||
|
|
||||||
Router get routes {
|
Router get routes {
|
||||||
final router = Router();
|
final router = Router();
|
||||||
|
|||||||
+7
-5
@@ -1,6 +1,7 @@
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
|
import 'package:dotenv/dotenv.dart';
|
||||||
import 'package:shelf/shelf.dart';
|
import 'package:shelf/shelf.dart';
|
||||||
import 'package:shelf/shelf_io.dart';
|
import 'package:shelf/shelf_io.dart';
|
||||||
import 'package:shelf_router/shelf_router.dart';
|
import 'package:shelf_router/shelf_router.dart';
|
||||||
@@ -28,15 +29,16 @@ Middleware _corsMiddleware = (Handler innerHandler) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
void main(List<String> args) async {
|
void main(List<String> args) async {
|
||||||
final database = DatabaseProvider();
|
final dotenv = DotEnv()..load();
|
||||||
|
final database = DatabaseProvider(dotEnv: dotenv);
|
||||||
await database.initialize();
|
await database.initialize();
|
||||||
|
|
||||||
Timer.periodic(const Duration(minutes: 5), (timer) {
|
Timer.periodic(const Duration(minutes: 5), (timer) {
|
||||||
database.cleanupExpired();
|
database.cleanupExpired();
|
||||||
});
|
});
|
||||||
|
|
||||||
final authRoutes = AuthRoutes(database);
|
final authRoutes = AuthRoutes(database: database,dotEnv: dotenv);
|
||||||
final geoRoutes = GeoRoutes(database);
|
final geoRoutes = GeoRoutes(database: database);
|
||||||
|
|
||||||
|
|
||||||
final router = Router()
|
final router = Router()
|
||||||
@@ -53,8 +55,8 @@ void main(List<String> args) async {
|
|||||||
.add(router.call)
|
.add(router.call)
|
||||||
.handler);
|
.handler);
|
||||||
|
|
||||||
final ip = InternetAddress.anyIPv4;
|
final ip = dotenv['HOST'] ?? InternetAddress.anyIPv4;
|
||||||
final port = int.parse(Platform.environment['PORT'] ?? '9090');
|
final port = int.parse(dotenv['PORT'] ?? '9090');
|
||||||
final server = await serve(handler, ip, port);
|
final server = await serve(handler, ip, port);
|
||||||
print('Server listening on port ${server.port}');
|
print('Server listening on port ${server.port}');
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user