D1APP-17 user info api added

This commit is contained in:
MohammadTaha Basiri 2022-01-09 19:11:54 +03:30
parent cde669b846
commit be7939ad7f
3 changed files with 51 additions and 5 deletions

View File

@ -1,5 +1,8 @@
import 'dart:developer';
import 'package:didvan/config/design_config.dart'; import 'package:didvan/config/design_config.dart';
import 'package:didvan/main.dart'; import 'package:didvan/main.dart';
import 'package:didvan/providers/server_data_provider.dart';
import 'package:didvan/providers/theme_provider.dart'; import 'package:didvan/providers/theme_provider.dart';
import 'package:didvan/providers/user_provider.dart'; import 'package:didvan/providers/user_provider.dart';
import 'package:didvan/routes/routes.dart'; import 'package:didvan/routes/routes.dart';
@ -38,13 +41,17 @@ class _SplashState extends State<Splash> {
_isGettingThemeData = false; _isGettingThemeData = false;
}), }),
); );
final String? token = await context.read<UserProvider>().setAndGetToken(); final userProvider = context.read<UserProvider>();
final String? token = await userProvider.setAndGetToken();
if (token != null) { if (token != null) {
log(token);
RequestService.token = token; RequestService.token = token;
await userProvider.getUserInfo();
await context.read<ServerDataProvider>().getData();
} }
await Future.delayed(const Duration(seconds: 2));
Navigator.of(context).pushReplacementNamed( Navigator.of(context).pushReplacementNamed(
token == null ? Routes.authenticaion : Routes.home, token == null ? Routes.authenticaion : Routes.home,
arguments: token == null ? false : null,
); );
} }

View File

@ -1,3 +0,0 @@
import 'package:didvan/providers/core_provider.dart';
class SplashState extends CoreProvier {}

View File

@ -1,7 +1,14 @@
import 'dart:io';
import 'package:didvan/models/enums.dart';
import 'package:didvan/models/user.dart';
import 'package:didvan/providers/core_provider.dart'; import 'package:didvan/providers/core_provider.dart';
import 'package:didvan/services/network/request.dart';
import 'package:didvan/services/network/request_helper.dart';
import 'package:hive/hive.dart'; import 'package:hive/hive.dart';
class UserProvider extends CoreProvier { class UserProvider extends CoreProvier {
late User user;
Future<String?> setAndGetToken({String? token}) async { Future<String?> setAndGetToken({String? token}) async {
final box = await Hive.openBox('autherization'); final box = await Hive.openBox('autherization');
if (token != null) { if (token != null) {
@ -10,4 +17,39 @@ class UserProvider extends CoreProvier {
return box.toMap()['token']; return box.toMap()['token'];
} }
} }
Future<void> getUserInfo() async {
final RequestService service = RequestService(RequestHelper.userInfo);
await service.httpGet();
if (service.isSuccess) {
user = User.fromJson(service.result['user']);
return;
}
throw 'Getting user from API failed!';
}
Future<bool> setProfilePhoto(File file) async {
appState = AppState.isolatedBusy;
final RequestService service =
RequestService(RequestHelper.updateUserProfile);
await service.multipart(file);
if (service.isSuccess) {
appState = AppState.idle;
return true;
}
appState = AppState.failed;
return false;
}
Future<void> setUsername(String username) async {
appState = AppState.isolatedBusy;
final RequestService service = RequestService(
RequestHelper.updateUsername,
body: {'username': username},
);
await service.put();
if (service.isSuccess) {
// appState = app
}
}
} }