Created
March 20, 2019 12:42
-
-
Save albertusdev/182710ed752bd46b91ba41e8c5388564 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'dart:async'; | |
import 'dart:io'; | |
import 'package:dio/dio.dart'; | |
import 'package:learn_fazz/models/login_spec.dart'; | |
import 'package:learn_fazz/models/login_result.dart'; | |
import 'package:learn_fazz/models/register_spec.dart'; | |
import 'package:learn_fazz/providers/login_provider.dart'; | |
import 'package:learn_fazz/providers/register_provider.dart'; | |
import 'package:meta/meta.dart'; | |
class AuthRepository { | |
AuthRepository({Dio httpClient}) | |
: _httpClient = httpClient, | |
_loginProvider = LoginProvider(httpClient: httpClient), | |
_registerProvider = RegisterProvider(httpClient: httpClient); | |
final LoginProvider _loginProvider; | |
final RegisterProvider _registerProvider; | |
final Dio _httpClient; | |
Future<LoginResult> login( | |
{@required String email, @required String password}) async { | |
final Response<Map<String, dynamic>> httpResponse = await _loginProvider | |
.login(LoginSpec(email: email, password: password)); | |
return setAuthorizationHeaderToken(httpResponse); | |
} | |
LoginResult setAuthorizationHeaderToken( | |
Response<Map<String, dynamic>> httpResponse) { | |
LoginResult loginResponse = LoginResult.fromHttpResponse(httpResponse); | |
if (loginResponse.statusCode == 200) { | |
_httpClient.options.headers['Authorization'] = | |
'Bearer ${loginResponse.token}'; | |
} | |
return loginResponse; | |
} | |
Future<LoginResult> register({ | |
@required String name, | |
@required String email, | |
@required String identificationNumber, | |
@required String password, | |
@required String passwordConfirmation, | |
@required String role, | |
@required File photo, | |
}) async { | |
final RegisterSpec registerRequestData = RegisterSpec( | |
name: name, | |
email: email, | |
identificationNumber: identificationNumber, | |
password: password, | |
passwordConfirmation: passwordConfirmation, | |
role: role, | |
photo: photo, | |
); | |
final Response<Map<String, dynamic>> httpResponse = | |
await _registerProvider.register(registerRequestData); | |
return setAuthorizationHeaderToken(httpResponse); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment