user_authenticator.dart 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import 'package:dio/dio.dart';
  2. import 'package:logger/logger.dart';
  3. import 'package:myapp/core/configuration.dart';
  4. import 'package:myapp/core/event_bus.dart';
  5. import 'events/user_authenticated_event.dart';
  6. class UserAuthenticator {
  7. final _dio = Dio();
  8. final _logger = Logger();
  9. UserAuthenticator._privateConstructor();
  10. static final UserAuthenticator instance =
  11. UserAuthenticator._privateConstructor();
  12. Future<bool> login(String username, String password) {
  13. return _dio.post(
  14. "http://" + Configuration.instance.getEndpoint() + ":8080/users/login",
  15. queryParameters: {
  16. "username": username,
  17. "password": password
  18. }).then((response) {
  19. if (response.statusCode == 200 && response.data != null) {
  20. Configuration.instance.setUsername(username);
  21. Configuration.instance.setPassword(password);
  22. Configuration.instance.setToken(response.data["token"]);
  23. Bus.instance.fire(UserAuthenticatedEvent());
  24. return true;
  25. } else {
  26. return false;
  27. }
  28. }).catchError((e) {
  29. _logger.e(e.toString());
  30. return false;
  31. });
  32. }
  33. Future<bool> create(String username, String password) {
  34. return _dio.post(
  35. "http://" + Configuration.instance.getEndpoint() + ":8080/users/create",
  36. queryParameters: {
  37. "username": username,
  38. "password": password
  39. }).then((response) {
  40. if (response.statusCode == 200 && response.data != null) {
  41. Configuration.instance.setUsername(username);
  42. Configuration.instance.setPassword(password);
  43. Configuration.instance.setToken(response.data["token"]);
  44. Bus.instance.fire(UserAuthenticatedEvent());
  45. return true;
  46. } else {
  47. if (response.data != null && response.data["message"] != null) {
  48. throw Exception(response.data["message"]);
  49. } else {
  50. throw Exception("Something went wrong");
  51. }
  52. }
  53. }).catchError((e) {
  54. _logger.e(e.toString());
  55. throw e;
  56. });
  57. }
  58. }