diff --git a/mobile/lib/controllers/session.dart b/mobile/lib/controllers/session.dart index 8efb018..042d79e 100644 --- a/mobile/lib/controllers/session.dart +++ b/mobile/lib/controllers/session.dart @@ -38,18 +38,16 @@ class SessionController extends ChangeNotifier { } } - get sessionToken { + String? get sessionToken { return _sessionToken; } Future logout() async { final token = _sessionToken; if (token != null) { - server.logout(token); + await server.logout(token); _sessionToken = null; } - print(_sessionToken); - print("notifying listeners"); notifyListeners(); } diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index c270aba..22e60b9 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:mobile/controllers/session.dart'; -import 'package:mobile/models/user.dart'; import 'package:mobile/pages/dashboard.dart'; import 'package:mobile/pages/log_in_page.dart'; import 'package:mobile/controllers/add_to_cart_state.dart'; @@ -11,7 +10,7 @@ import 'package:mobile/controllers/paying_state.dart'; import 'package:mobile/controllers/product.dart'; import 'package:mobile/controllers/receipt.dart'; import 'package:mobile/controllers/user.dart'; -import 'package:mobile/server/mock_server.dart'; +import 'package:mobile/server/backend_server.dart'; import 'package:provider/provider.dart'; import 'package:mobile/controllers/routing.dart'; @@ -24,7 +23,7 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { - final server = MockServer(); + final server = BackendServer(); return MultiProvider( providers: [ ChangeNotifierProvider(create: (_) => RoutingController()), @@ -51,7 +50,9 @@ class MyApp extends StatelessWidget { ), home: Consumer( builder: (_, sessionController, __) { - if (sessionController.sessionToken is String) return Dashboard(); + if (sessionController.sessionToken is String) { + return Dashboard(); + } return const LogInPage(); }, )), diff --git a/mobile/lib/models/product.dart b/mobile/lib/models/product.dart index e14a0a9..1b4b9e2 100644 --- a/mobile/lib/models/product.dart +++ b/mobile/lib/models/product.dart @@ -21,7 +21,7 @@ class Product { : id = json["id"], name = json["name"], description = json["description"], - priceInDkkCents = json["priceInDkkCents"], + priceInDkkCents = json["price_dkk_cent"], location = null, - barcode = null; + barcode = json["barcode"]; } diff --git a/mobile/lib/models/user.dart b/mobile/lib/models/user.dart index 3ac99cc..f8e2cb4 100644 --- a/mobile/lib/models/user.dart +++ b/mobile/lib/models/user.dart @@ -16,10 +16,10 @@ class User { }); User.fromJson(Map json) - : id = json["id"], - email = json["email"], + : email = json["email"], + id = json["id"], name = json["name"], - balanceInDkkCents = json["balanceInDkkCents"]; + balanceInDkkCents = json["balance_dkk_cent"]; void addBalanceFounds(int amount) { balanceInDkkCents += amount; diff --git a/mobile/lib/pages/register_page.dart b/mobile/lib/pages/register_page.dart index e2750cf..9764460 100644 --- a/mobile/lib/pages/register_page.dart +++ b/mobile/lib/pages/register_page.dart @@ -27,6 +27,7 @@ class RegisterForm extends StatefulWidget { class RegisterFormState extends State { bool registerError = false; + String errorText = "Ingen fejlbesked jeg skal ikke vises"; @override Widget build(BuildContext context) { @@ -43,7 +44,7 @@ class RegisterFormState extends State { ), ErrorBox( visible: registerError, - errorText: "Bruger med mailen ${mailController.text}", + errorText: errorText, onClosePressed: () { setState(() { registerError = false; @@ -70,14 +71,18 @@ class RegisterFormState extends State { placeholderText: "*********", obscure: true), PrimaryButton( - onPressed: () { + onPressed: () async { final sessionsRepo = context.read(); - if (sessionsRepo.register(nameController.text, - mailController.text, passwordController.text) is Ok) { + final res = await sessionsRepo.register(nameController.text, + mailController.text, passwordController.text); + if (res is Ok) { setState(() => registerError = false); - Navigator.of(context).pop(); + if (context.mounted) Navigator.of(context).pop(); } else { - setState(() => registerError = true); + setState(() { + registerError = true; + errorText = (res as Err).value; + }); } }, child: const Text("Opret bruger")), diff --git a/mobile/lib/pages/settings_page.dart b/mobile/lib/pages/settings_page.dart index 4fb3adf..d0f1ddb 100644 --- a/mobile/lib/pages/settings_page.dart +++ b/mobile/lib/pages/settings_page.dart @@ -29,10 +29,10 @@ class SettingsPage extends StatelessWidget { _Page( icon: Icons.door_back_door, title: "Log ud", - action: (context) { + action: (context) async { final sessionsController = context.read(); - Navigator.popUntil(context, (_) => false); - sessionsController.logout(); + Navigator.pop(context); + await sessionsController.logout(); }), ]; diff --git a/mobile/lib/server/backend_server.dart b/mobile/lib/server/backend_server.dart index a221129..8386173 100644 --- a/mobile/lib/server/backend_server.dart +++ b/mobile/lib/server/backend_server.dart @@ -6,7 +6,8 @@ import 'package:mobile/models/user.dart'; import 'package:mobile/server/server.dart'; class BackendServer implements Server { - final _apiUrl = "10.135.51.114:8080/api"; + final _apiUrl = "http://192.168.1.128:8080/api"; + // final _apiUrl = "http://127.0.0.1:8080/api"; Future _post( {required String endpoint, required Map body}) async { @@ -26,10 +27,12 @@ class BackendServer implements Server { ) .then((res) => json.decode(res.body)); if (res["ok"]) { - return Error(message: res["message"]); - } else { return Success( - data: res.map(((product) => Product.fromJson(product))).toList()); + data: (res["products"] as List) + .map(((product) => Product.fromJson(product))) + .toList()); + } else { + return Error(message: res["msg"]); } } @@ -47,7 +50,7 @@ class BackendServer implements Server { if (res["ok"]) { return Success(data: null); } else { - return Error(message: res["message"]); + return Error(message: res["msg"]); } } @@ -64,7 +67,7 @@ class BackendServer implements Server { if (res["ok"]) { return Success(data: res["token"]); } else { - return Error(message: res["message"]); + return Error(message: res["msg"]); } } @@ -80,21 +83,21 @@ class BackendServer implements Server { if (res["ok"]) { return Success(data: null); } else { - return Error(message: res["message"]); + return Error(message: res["msg"]); } } @override Future> sessionUser(String token) async { - final res = await http - .get( - Uri.parse("$_apiUrl/sessions/user/$token"), - ) - .then((res) => json.decode(res.body)); + ("sending request fr with token $token"); + final res = await http.get( + Uri.parse("$_apiUrl/sessions/user"), + headers: {"Session-Token": token}, + ).then((res) => json.decode(res.body)); if (res["ok"]) { - return Error(message: res["message"]); + return Success(data: User.fromJson(res["user"])); } else { - return Success(data: User.fromJson(res)); + return Error(message: res["msg"]); } } @@ -110,7 +113,7 @@ class BackendServer implements Server { if (res["ok"]) { return Success(data: null); } else { - return Error(message: res["message"]); + return Error(message: res["msg"]); } } } diff --git a/mobile/lib/widgets/error_box.dart b/mobile/lib/widgets/error_box.dart index e249997..cb481ca 100644 --- a/mobile/lib/widgets/error_box.dart +++ b/mobile/lib/widgets/error_box.dart @@ -24,7 +24,7 @@ class ErrorBox extends StatelessWidget { ), child: Row( children: [ - const Text("Ugyldigt mail eller password"), + Text(errorText), IconButton(onPressed: onClosePressed, icon: const Icon(Icons.close)) ], ),