Fix : fix asynchronous bug in searchByUsername Function. (the return was before the asynchronous call)
continuous-integration/drone/push Build is passing Details

messagerie_lucas_test
Audric SABATIER 2 years ago
parent 0784d8f074
commit 92c46322ff

@ -12,12 +12,14 @@ import '../persistence/searcher.dart';
class Controller{
static Controller? _this;
static Saver? saver = DatabaseSaver();
static Loader? loader = DatabaseLoader();
static Saver saver = DatabaseSaver();
static Loader loader = DatabaseLoader();
static Searcher _searcher = DatabaseSearcher();
User currentUser = User("", "");
factory Controller(){
if (_this == null) _this = Controller._();
return _this!;
@ -26,11 +28,11 @@ class Controller{
Controller._();
void save(User userToSave){
saver?.save(userToSave);
saver.save(userToSave);
}
void load(String username, String password) async{
currentUser = await loader?.load(username, password) as User;
currentUser = await loader.load(username, password) as User;
}
User createUser(String username, String password){
@ -43,16 +45,16 @@ class Controller{
void changeUsernameCourant(String newName){
if(newName !=null){
this.currentUser?.usernameDafl = newName;
this.currentUser.usernameDafl = newName;
}
}
void changePasswordCourant(String newPass){
if(newPass !=null){
this.currentUser?.passwDafl = newPass;
this.currentUser.passwDafl = newPass;
}
}
Future<bool> searchByUsername(String username) async{
return _searcher.searchByUsername(username);
return await _searcher.searchByUsername(username);
}
}

@ -61,14 +61,12 @@ class User{
void addDiscovery(Music newmusic){
if(MyApp().controller?.currentUser?.Discovery == null){
if(MyApp().controller.currentUser.Discovery == null){
}
else{
MyApp().controller.currentUser?.Discovery.add(newmusic);
MyApp().controller.currentUser.Discovery.add(newmusic);
}

@ -1,8 +0,0 @@
import 'user.dart';
class UserCreator{
User? createUser(int id, String username){
}
}

@ -1,5 +0,0 @@
postgres
mdpDaflBd
89.83.54.48
BD-DaflMusic

@ -6,6 +6,8 @@ import '../model/user.dart';
class DatabaseSaver extends Saver{
// Save user in the database
@override
void save(User userToSave) async{
final connection = await DatabaseConnexion.initConnexion();
@ -13,7 +15,11 @@ class DatabaseSaver extends Saver{
connection.execute('insert into utilisateur (username, password) values (@username, @password)',
{ 'id' : '',
'username': userToSave.usernameDafl,
'password' : userToSave.passwDafl}).then((_) {});
'password' : userToSave.passwDafl})
.whenComplete(() {
connection.close();
});
}
}

@ -2,24 +2,24 @@ import 'package:dafl_project_flutter/persistence/database_connexion.dart';
import 'searcher.dart';
class DatabaseSearcher extends Searcher{
class DatabaseSearcher extends Searcher{
Future<bool> searchUser(String? username, String? password) async { return true; }
// Search an user in the database by username
@override
Future<bool> searchByUsername(String? username) async{
Future<bool> searchByUsername(String? usernameToSearch) async{
final connection = await DatabaseConnexion.initConnexion();
bool isHere = true;
connection.query('select * from utilisateur where username = $username').toList().then((rows) {
if(rows.isEmpty){
isHere = false;
}
}).whenComplete(() {
print('close');
});
bool queryResult = await connection.query('select * from utilisateur where username = @username',{ 'username' : usernameToSearch})
.toList()
.then((rows) { return rows.isEmpty; });
return isHere;
return queryResult;
}
}

@ -1,6 +1,5 @@
import 'dart:ui';
import 'package:dafl_project_flutter/model/user.dart';
import 'package:dafl_project_flutter/views/pages/main/p_main.dart';
import 'package:flutter/material.dart';
import 'package:page_transition/page_transition.dart';
import '../../../main.dart';

@ -307,7 +307,6 @@ class _SignUpPageState extends State<SignUpPage> {
else if(! await MyApp().controller.searchByUsername(username)){
Notify(0, context);
}
if(password == "" || confirmPassword == ""){
Notify(4, context);
}

Loading…
Cancel
Save