Skip to content

Commit

Permalink
Add forgot password repository (#239)
Browse files Browse the repository at this point in the history
  • Loading branch information
tvc12 authored Jun 2, 2020
1 parent 826a1fb commit dfdd133
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 19 deletions.
44 changes: 29 additions & 15 deletions petisland_core/lib/repository/account_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,16 @@ abstract class AccountRepository {

Future<bool> checkCode(String email, String code);

Future<Account> register(
String email, String code, String username, String password,
Future<Account> register(String email, String code, String username, String password,
{User user});

Future<LoginData> login(String username, String password);

Future<LoginData> checkToken(String token);

Future<bool> requireForgotPasswordCode(String email);

Future<Account> forgotPassword(String email, String code, String password);
}

class AccountReposityImpl extends AccountRepository {
Expand All @@ -29,12 +32,11 @@ class AccountReposityImpl extends AccountRepository {
};
return client
.post<Map<String, dynamic>>('$path/login', body)
.then((Map<String, dynamic> json) => LoginData.fromJson(json));
.then((json) => LoginData.fromJson(json));
}

@override
Future<Account> register(
String email, String code, String username, String password,
Future<Account> register(String email, String code, String username, String password,
{User user}) {
final Map<String, dynamic> params = <String, dynamic>{
'email': email,
Expand All @@ -49,7 +51,7 @@ class AccountReposityImpl extends AccountRepository {

return client
.post<Map<String, dynamic>>('$path/register', body, params: params)
.then((Map<String, dynamic> json) => Account.fromJson(json));
.then((json) => Account.fromJson(json));
}

@override
Expand All @@ -59,26 +61,38 @@ class AccountReposityImpl extends AccountRepository {
};
return client
.get<Map<String, dynamic>>('$path/register/require-code', params: params)
.then((Map<String, dynamic> json) => Account.fromJson(json));
.then((json) => Account.fromJson(json));
}

@override
Future<LoginData> checkToken(String token) {
final Map<String, dynamic> headers = <String, dynamic>{
'x-access-token': token
};
final Map<String, dynamic> headers = <String, dynamic>{'x-access-token': token};
return client
.get<Map<String, dynamic>>('$path/check-token',
options: Options(headers: headers))
.then((Map<String, dynamic> json) => LoginData.fromJson(json));
.then((json) => LoginData.fromJson(json));
}

@override
Future<bool> checkCode(String email, String code) {
final Map<String, dynamic> params = <String, dynamic>{
'email': email,
'code': code
};
final Map<String, dynamic> params = <String, dynamic>{'email': email, 'code': code};
return client.getRaw('$path/register/check-code', params: params).then((_) => true);
}

@override
Future<Account> forgotPassword(String email, String code, String password) {
final body = {'password': password};
final params = {'email': email, 'code': code};
return client
.post<Map<String, dynamic>>('$path/forgot-password', body, params: params)
.then((json) => Account.fromJson(json));
}

@override
Future<bool> requireForgotPasswordCode(String email) {
final params = {'email': email};
return client
.get<Map<String, dynamic>>('$path/forgot-password/require-code', params: params)
.then((_) => true);
}
}
20 changes: 16 additions & 4 deletions petisland_core/lib/service/account_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,18 @@ part of petisland_core.service;
abstract class AccountService {
Future<Account> requireCode(String email);

Future<Account> register(
String email, String code, String username, String password,
Future<Account> register(String email, String code, String username, String password,
{User user});

Future<LoginData> login(String username, String password);

Future<LoginData> checkToken(String token);

Future<bool> checkCode(String email, String code);

Future<bool> requireForgotPasswordCode(String email);

Future<Account> forgotPassword(String email, String code, String password);
}

class AccountServiceImpl extends AccountService {
Expand All @@ -26,8 +29,7 @@ class AccountServiceImpl extends AccountService {
}

@override
Future<Account> register(
String email, String code, String username, String password,
Future<Account> register(String email, String code, String username, String password,
{User user}) {
return repository.register(email, code, username, password, user: user);
}
Expand All @@ -46,4 +48,14 @@ class AccountServiceImpl extends AccountService {
Future<bool> checkCode(String email, String code) {
return repository.checkCode(email, code);
}

@override
Future<Account> forgotPassword(String email, String code, String password) {
return repository.forgotPassword(email, code, password);
}

@override
Future<bool> requireForgotPasswordCode(String email) {
return repository.requireForgotPasswordCode(email);
}
}

0 comments on commit dfdd133

Please sign in to comment.