ADD : Amélioration classe DatabaseConnection. Commentaires + fonctions static (appel possible sans instancié d'objet)
continuous-integration/drone/push Build is passing Details

messagerie_lucas_test
Audric SABATIER 2 years ago
parent 77d5557743
commit 36e8d5faba

@ -1,6 +1,5 @@
import 'dart:convert';
import 'dart:io';
import 'package:flutter/services.dart';
import 'package:path_provider/path_provider.dart';
@ -9,19 +8,26 @@ import 'package:postgresql2/constants.dart';
import 'package:postgresql2/pool.dart';
import 'package:postgresql2/postgresql.dart';
class DatabaseConnexion{
final String filePath = 'assets/logs.txt';
// Path to the file containing the database identifiers
static final String filePath = 'assets/logs.txt';
String? _psqlUser;
String? _psqlPswd;
String? _psqlHost;
String? _psqlDataBase;
// Database identifiers
static String? _psqlUser;
static String? _psqlPswd;
static String? _psqlHost;
static String? _psqlDataBase;
Future<void> _loadLogs() async{
// Read the database connection identifiers in a file
static Future<void> _loadLogs() async{
try{
final _loadedData = await rootBundle.loadString(filePath);
print('appel de -readLogs');
final _logs = LineSplitter.split(_loadedData).toList();
_psqlUser = _logs[0];
@ -35,9 +41,12 @@ class DatabaseConnexion{
}
//Initialise connexion to the database
Future<Connection> initConnexion() async{
await _loadLogs();
static Future<Connection> initConnexion() async{
if(_psqlHost == null || _psqlPswd == null || _psqlUser == null || _psqlDataBase == null){
await _loadLogs();
}
var uri = 'postgres://$_psqlUser:$_psqlPswd@$_psqlHost:5442/$_psqlDataBase';

@ -5,12 +5,10 @@ import '../model/user.dart';
import 'database_connexion.dart';
class DatabaseLoader extends Loader{
DatabaseConnexion dbConnexion = DatabaseConnexion();
@override
Future<User?> load(String? username, String? password) async {
final connection = await dbConnexion.initConnexion();
final connection = await DatabaseConnexion.initConnexion();
connection.query('select * from utilisateur where username = @username AND password = @password',
{'username': username,
@ -18,4 +16,5 @@ class DatabaseLoader extends Loader{
.then((result) {
print(result); });
}
}

@ -9,11 +9,12 @@ class DatabaseSaver extends Saver{
@override
void save(User userToSave) async{
final connection = await dbConnexion.initConnexion();
final connection = await DatabaseConnexion.initConnexion();
connection.execute('insert into utilisateur (username, password) values (@username, @password)',
{ 'id' : '',
'username': userToSave.usernameDafl,
'password' : userToSave.passwDafl}).then((_) {});
}
}

@ -3,14 +3,12 @@ import 'package:dafl_project_flutter/persistence/database_connexion.dart';
import 'searcher.dart';
class DatabaseSearcher extends Searcher{
DatabaseConnexion dbConnexion = DatabaseConnexion();
Future<bool> searchUser(String? username, String? password) async { return true; }
@override
Future<bool> searchByUsername(String? username) async{
final connection = await dbConnexion.initConnexion();
final connection = await DatabaseConnexion.initConnexion();
connection.query('select * from utilisateur where username = $username').toList().then((rows) {
if(rows.isEmpty){

@ -10,6 +10,6 @@ Future<void> main() async {
DatabaseConnexion d = DatabaseConnexion();
d.initConnexion();
DatabaseConnexion.initConnexion();
}
Loading…
Cancel
Save