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/services/network/request.dart'; import 'package:didvan/services/network/request_helper.dart'; import 'package:hive/hive.dart'; class UserProvider extends CoreProvier { late User user; Future setAndGetToken({String? token}) async { final box = await Hive.openBox('autherization'); if (token != null) { await box.put('token', token); } else { return box.toMap()['token']; } } Future 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 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 setUsername(String username) async { appState = AppState.isolatedBusy; final RequestService service = RequestService( RequestHelper.updateUsername, body: {'username': username}, ); await service.put(); if (service.isSuccess) { // appState = app } } }