diff --git a/petisland_core/lib/repository/account_repository.dart b/petisland_core/lib/repository/account_repository.dart index 072a135..6fc8148 100644 --- a/petisland_core/lib/repository/account_repository.dart +++ b/petisland_core/lib/repository/account_repository.dart @@ -5,13 +5,16 @@ abstract class AccountRepository { Future checkCode(String email, String code); - Future register( - String email, String code, String username, String password, + Future register(String email, String code, String username, String password, {User user}); Future login(String username, String password); Future checkToken(String token); + + Future requireForgotPasswordCode(String email); + + Future forgotPassword(String email, String code, String password); } class AccountReposityImpl extends AccountRepository { @@ -29,12 +32,11 @@ class AccountReposityImpl extends AccountRepository { }; return client .post>('$path/login', body) - .then((Map json) => LoginData.fromJson(json)); + .then((json) => LoginData.fromJson(json)); } @override - Future register( - String email, String code, String username, String password, + Future register(String email, String code, String username, String password, {User user}) { final Map params = { 'email': email, @@ -49,7 +51,7 @@ class AccountReposityImpl extends AccountRepository { return client .post>('$path/register', body, params: params) - .then((Map json) => Account.fromJson(json)); + .then((json) => Account.fromJson(json)); } @override @@ -59,26 +61,38 @@ class AccountReposityImpl extends AccountRepository { }; return client .get>('$path/register/require-code', params: params) - .then((Map json) => Account.fromJson(json)); + .then((json) => Account.fromJson(json)); } @override Future checkToken(String token) { - final Map headers = { - 'x-access-token': token - }; + final Map headers = {'x-access-token': token}; return client .get>('$path/check-token', options: Options(headers: headers)) - .then((Map json) => LoginData.fromJson(json)); + .then((json) => LoginData.fromJson(json)); } @override Future checkCode(String email, String code) { - final Map params = { - 'email': email, - 'code': code - }; + final Map params = {'email': email, 'code': code}; return client.getRaw('$path/register/check-code', params: params).then((_) => true); } + + @override + Future forgotPassword(String email, String code, String password) { + final body = {'password': password}; + final params = {'email': email, 'code': code}; + return client + .post>('$path/forgot-password', body, params: params) + .then((json) => Account.fromJson(json)); + } + + @override + Future requireForgotPasswordCode(String email) { + final params = {'email': email}; + return client + .get>('$path/forgot-password/require-code', params: params) + .then((_) => true); + } } diff --git a/petisland_core/lib/service/account_service.dart b/petisland_core/lib/service/account_service.dart index 2520dae..d2f2499 100644 --- a/petisland_core/lib/service/account_service.dart +++ b/petisland_core/lib/service/account_service.dart @@ -3,8 +3,7 @@ part of petisland_core.service; abstract class AccountService { Future requireCode(String email); - Future register( - String email, String code, String username, String password, + Future register(String email, String code, String username, String password, {User user}); Future login(String username, String password); @@ -12,6 +11,10 @@ abstract class AccountService { Future checkToken(String token); Future checkCode(String email, String code); + + Future requireForgotPasswordCode(String email); + + Future forgotPassword(String email, String code, String password); } class AccountServiceImpl extends AccountService { @@ -26,8 +29,7 @@ class AccountServiceImpl extends AccountService { } @override - Future register( - String email, String code, String username, String password, + Future register(String email, String code, String username, String password, {User user}) { return repository.register(email, code, username, password, user: user); } @@ -46,4 +48,14 @@ class AccountServiceImpl extends AccountService { Future checkCode(String email, String code) { return repository.checkCode(email, code); } + + @override + Future forgotPassword(String email, String code, String password) { + return repository.forgotPassword(email, code, password); + } + + @override + Future requireForgotPasswordCode(String email) { + return repository.requireForgotPasswordCode(email); + } }