import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'package:shared_preferences/shared_preferences.dart'; import '../config/urls.dart'; class MyInfoProvider with ChangeNotifier { Map _user = {}; Map get user { return {..._user}; } String? _token; Future setToken() async { final prefs = await SharedPreferences.getInstance(); if (!prefs.containsKey('auth')) { return; } final auth = json.decode(prefs.getString('auth')!) as Map; _token = auth['token']; notifyListeners(); } Future> getUserData() async { final prefs = await SharedPreferences.getInstance(); final auth = json.decode(prefs.getString('auth')!) as Map; _token = auth['token']; final response = await http.get( Uri.parse(Url.getUserInfo), headers: { 'Authorization': 'Bearer $_token', }, ); print(response.body); if (response.statusCode == 200) { var data = json.decode(response.body)['data']; _user.addAll( { 'id': data['user']['id'], 'name': data['user']['name'], 'email': data['user']['email'], 'cell_number': data['user']['cell_number'], 'address': data['user']['address'], 'gender': data['user']['gender'], 'medical_center': data['user']['medical_center']['name'], 'roles': data['roles'], }, ); final prefs = await SharedPreferences.getInstance(); prefs.setString('userData', json.encode(_user)); return _user; } else { return {}; } } }