diff --git a/.idea/Bowl_in.iml b/.idea/Bowl_in.iml
index eed4b67..f1b2d07 100644
--- a/.idea/Bowl_in.iml
+++ b/.idea/Bowl_in.iml
@@ -9,5 +9,7 @@
+
+
\ No newline at end of file
diff --git a/Sources/bowlin_project/lib/model/LocalManager/AuthManager.dart b/Sources/bowlin_project/lib/model/LocalManager/AuthManager.dart
new file mode 100644
index 0000000..97fbc45
--- /dev/null
+++ b/Sources/bowlin_project/lib/model/LocalManager/AuthManager.dart
@@ -0,0 +1,17 @@
+library LocalLib;
+
+import '../IAuthManager.dart';
+import 'LocalData.dart';
+
+class AuthManager extends IAuthManager {
+ final LocalData parent;
+
+ // Constructor
+ AuthManager(this.parent);
+
+ // Methods
+ @override
+ bool verifiedUser(String name, String password) {
+ return false;
+ }
+}
diff --git a/Sources/bowlin_project/lib/model/LocalManager/GameManager.dart b/Sources/bowlin_project/lib/model/LocalManager/GameManager.dart
new file mode 100644
index 0000000..5517ed5
--- /dev/null
+++ b/Sources/bowlin_project/lib/model/LocalManager/GameManager.dart
@@ -0,0 +1,49 @@
+library LocalLib;
+
+import '../IGameManager.dart';
+import '../GameDetail.dart';
+import '../Player.dart';
+import '../User.dart';
+import '../Guest.dart';
+import 'LocalData.dart';
+import 'package:uuid/uuid.dart';
+
+class GameManager extends IGameManager {
+ List games = [];
+ final LocalData parent;
+
+ // Constructor
+ GameManager(this.parent);
+
+ // Methods
+ @override
+ GameDetail getGameById(Uuid id) {
+ return GameDetail(Uuid(), DateTime.now(), Uuid(), 290, true, null,
+ Guest(Uuid(), "", ""), [], []);
+ }
+
+ @override
+ List getGamesByPlayerId(Uuid id) {
+ return [];
+ }
+
+ @override
+ List getGamesByPlayer(Player user) {
+ return [];
+ }
+
+ @override
+ List getGamesByPlayers(List users) {
+ return [];
+ }
+
+ @override
+ List getPlayersByIdGame(Uuid id) {
+ return [];
+ }
+
+ @override
+ Map getRankByIdGame(Uuid id) {
+ return {};
+ }
+}
diff --git a/Sources/bowlin_project/lib/model/LocalManager/LocalData.dart b/Sources/bowlin_project/lib/model/LocalManager/LocalData.dart
new file mode 100644
index 0000000..f20430e
--- /dev/null
+++ b/Sources/bowlin_project/lib/model/LocalManager/LocalData.dart
@@ -0,0 +1,38 @@
+library LocalLib;
+
+import '../IManager.dart';
+import '../IUserManager.dart';
+import '../IGameManager.dart';
+import '../User.dart';
+import 'UserManager.dart';
+import 'GameManager.dart';
+import 'package:localstorage/localstorage.dart';
+
+class LocalData extends IManager {
+ late IUserManager _userMgr;
+ late IGameManager _gameMgr;
+
+ final LocalStorage storage = LocalStorage('local_key');
+
+ List users = [];
+
+ LocalData() {
+ _userMgr = UserManager(this);
+ _gameMgr = GameManager(this);
+ users = storage.getItem('users');
+ }
+
+ _saveToStorage() {
+ storage.setItem('users', toJSONEncodable());
+ }
+
+ _clearStorage() async {
+ await storage.clear();
+ }
+
+ toJSONEncodable() {
+ return users.map((user) {
+ return user.toJSONEncodable();
+ }).toList();
+ }
+}
diff --git a/Sources/bowlin_project/lib/model/LocalManager/UserManager.dart b/Sources/bowlin_project/lib/model/LocalManager/UserManager.dart
new file mode 100644
index 0000000..46ed4ca
--- /dev/null
+++ b/Sources/bowlin_project/lib/model/LocalManager/UserManager.dart
@@ -0,0 +1,38 @@
+library LocalLib;
+
+import '../IUserManager.dart';
+import '../IAuthManager.dart';
+import 'AuthManager.dart';
+import 'LocalData.dart';
+import '../User.dart';
+import 'package:uuid/uuid.dart';
+
+class UserManager extends IUserManager {
+ final LocalData parent;
+
+ // Constructor
+ UserManager(this.parent) : super(AuthManager(parent));
+
+ // Methods
+ @override
+ List getUsersByName(String name) {
+ List returnList = [];
+ parent.users.forEach((element) {
+ if (element.name == name) {
+ returnList.add(element);
+ }
+ });
+ return returnList;
+ }
+
+ @override
+ User getUserById(Uuid id) {
+ var returnUser;
+ parent.users.forEach((element) {
+ if (element.id == id) {
+ returnUser = element;
+ }
+ });
+ return returnUser;
+ }
+}
diff --git a/Sources/bowlin_project/lib/model/StubManager/StubData.dart b/Sources/bowlin_project/lib/model/StubManager/StubData.dart
index 08b9dc4..d93815b 100644
--- a/Sources/bowlin_project/lib/model/StubManager/StubData.dart
+++ b/Sources/bowlin_project/lib/model/StubManager/StubData.dart
@@ -1,4 +1,5 @@
library StubLib;
+
import '../IManager.dart';
import '../IUserManager.dart';
import '../IGameManager.dart';
@@ -19,8 +20,29 @@ class StubData extends IManager {
}
List users = [
- User(Uuid(),"Emre","https://fastly.picsum.photos/id/1060/2000/2000.jpg?hmac=_RrU8GpkCDUlVKfgyWE-GcX-GS5TKNyUzdFbJAGXHV4","emre.kartal@etu.uca.fr", [Achievement("5 games"), Achievement("2 strikes in a row"), Achievement("Win a game")], [], Stat(10,2,12,130,7,6,700,58.33,30.2)),
- User(Uuid(),"Dave","https://fastly.picsum.photos/id/820/2000/2000.jpg?hmac=Ctxx2feJNZnG1S7UPx_YrWcEw89tKb7fR8i1W-VTOz4","david.d_almeida@etu.uca.fr", [Achievement("5 games"), Achievement("0 point"), Achievement("Win a game")], [], Stat(2,7,9,80,4,3,250,27.77,10.55))
+ User(
+ Uuid(),
+ "Emre",
+ "https://fastly.picsum.photos/id/1060/2000/2000.jpg?hmac=_RrU8GpkCDUlVKfgyWE-GcX-GS5TKNyUzdFbJAGXHV4",
+ "emre.kartal@etu.uca.fr",
+ [
+ Achievement("5 games"),
+ Achievement("2 strikes in a row"),
+ Achievement("Win a game")
+ ],
+ [],
+ Stat(10, 2, 12, 130, 7, 6, 700, 58.33, 30.2)),
+ User(
+ Uuid(),
+ "Dave",
+ "https://fastly.picsum.photos/id/820/2000/2000.jpg?hmac=Ctxx2feJNZnG1S7UPx_YrWcEw89tKb7fR8i1W-VTOz4",
+ "david.d_almeida@etu.uca.fr",
+ [
+ Achievement("5 games"),
+ Achievement("0 point"),
+ Achievement("Win a game")
+ ],
+ [],
+ Stat(2, 7, 9, 80, 4, 3, 250, 27.77, 10.55))
];
-
-}
\ No newline at end of file
+}
diff --git a/Sources/bowlin_project/lib/model/StubManager/UserManager.dart b/Sources/bowlin_project/lib/model/StubManager/UserManager.dart
index b69c6d8..634f7a5 100644
--- a/Sources/bowlin_project/lib/model/StubManager/UserManager.dart
+++ b/Sources/bowlin_project/lib/model/StubManager/UserManager.dart
@@ -1,4 +1,5 @@
library StubLib;
+
import '../IUserManager.dart';
import '../IAuthManager.dart';
import 'AuthManager.dart';
@@ -11,13 +12,15 @@ class UserManager extends IUserManager {
final StubData parent;
// Constructor
- UserManager(this.parent):super(AuthManager(parent));
+ UserManager(this.parent) : super(AuthManager(parent));
// Methods
List getUsersByName(String name) {
return [];
}
+
User getUserById(Uuid id) {
- return User(Uuid(),"","","",[],[], Stat(10,10,10,10,10,10,10,10,10));
+ return User(
+ Uuid(), "", "", "", [], [], Stat(10, 10, 10, 10, 10, 10, 10, 10, 10));
}
-}
\ No newline at end of file
+}
diff --git a/Sources/bowlin_project/lib/model/User.dart b/Sources/bowlin_project/lib/model/User.dart
index 0355054..39a9ccc 100644
--- a/Sources/bowlin_project/lib/model/User.dart
+++ b/Sources/bowlin_project/lib/model/User.dart
@@ -10,7 +10,8 @@ class User extends Player {
Stat _stat;
// Constructor
- User(Uuid id, String name, String image, this._mail, this._achievements, this._friends, this._stat)
+ User(Uuid id, String name, String image, this._mail, this._achievements,
+ this._friends, this._stat)
: super(id, name, image);
// Getters and setters
@@ -37,4 +38,18 @@ class User extends Player {
set stats(Stat value) {
_stat = value;
}
+
+ toJSONEncodable() {
+ Map m = new Map();
+
+ m['id'] = id;
+ m['Name'] = name;
+ m['Mail'] = _mail;
+ m['Image'] = image;
+ m['Achievement'] = achievements;
+ m['Friends'] = friends;
+ m['Stat'] = stat;
+
+ return m;
+ }
}
diff --git a/Sources/bowlin_project/pubspec.lock b/Sources/bowlin_project/pubspec.lock
index da2a4e6..9772bd7 100644
--- a/Sources/bowlin_project/pubspec.lock
+++ b/Sources/bowlin_project/pubspec.lock
@@ -33,6 +33,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.1"
+ buffer:
+ dependency: transitive
+ description:
+ name: buffer
+ sha256: "8962c12174f53e2e848a6acd7ac7fd63d8a1a6a316c20c458a832d87eba5422a"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.2.0"
characters:
dependency: transitive
description:
@@ -41,6 +49,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.2.1"
+ charcode:
+ dependency: transitive
+ description:
+ name: charcode
+ sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.3.1"
checked_yaml:
dependency: transitive
description:
@@ -216,6 +232,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.0.1"
+ localstorage:
+ dependency: "direct main"
+ description:
+ name: localstorage
+ sha256: "93f103074c0661bc1bb90aa88e172ee2e9096ec0c4f9baf519e23372c39ca681"
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.0.0+1"
logging:
dependency: transitive
description:
@@ -304,6 +328,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.3"
+ pedantic:
+ dependency: transitive
+ description:
+ name: pedantic
+ sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.11.1"
petitparser:
dependency: transitive
description:
@@ -336,6 +368,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.6.2"
+ pool:
+ dependency: transitive
+ description:
+ name: pool
+ sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.5.1"
+ postgres:
+ dependency: "direct main"
+ description:
+ name: postgres
+ sha256: "8a94c672fbfd252228862a8e786497828f650b427e51b2e624606756c64224e3"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.6.1"
process:
dependency: transitive
description:
@@ -344,6 +392,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.2.4"
+ sasl_scram:
+ dependency: transitive
+ description:
+ name: sasl_scram
+ sha256: a47207a436eb650f8fdcf54a2e2587b850dc3caef9973ce01f332b07a6fc9cb9
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.1.1"
+ saslprep:
+ dependency: transitive
+ description:
+ name: saslprep
+ sha256: "79c9e163a82f55da542feaf0f7a59031e74493299c92008b2b404cd88d639bb4"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.2"
simple_gradient_text:
dependency: "direct main"
description:
@@ -413,6 +477,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.3.1"
+ unorm_dart:
+ dependency: transitive
+ description:
+ name: unorm_dart
+ sha256: "5b35bff83fce4d76467641438f9e867dc9bcfdb8c1694854f230579d68cd8f4b"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.2.0"
uuid:
dependency: "direct main"
description:
diff --git a/Sources/bowlin_project/pubspec.yaml b/Sources/bowlin_project/pubspec.yaml
index 6b6031d..2d68424 100644
--- a/Sources/bowlin_project/pubspec.yaml
+++ b/Sources/bowlin_project/pubspec.yaml
@@ -40,6 +40,8 @@ dependencies:
google_fonts: ^3.0.1
go_router: ^6.0.1
uuid: ^3.0.7
+ postgres: ^2.6.1
+ localstorage: ^4.0.0+1
dev_dependencies:
flutter_test:
@@ -88,8 +90,8 @@ flutter:
# list giving the asset and other descriptors for the font. For
# example:
fonts:
- - family: BowlInFont
- fonts:
- - asset: assets/fonts/BowlInFont.ttf
+ - family: BowlInFont
+ fonts:
+ - asset: assets/fonts/BowlInFont.ttf
# For details regarding fonts from package dependencies,
# see https://flutter.dev/custom-fonts/#from-packages