Files
2023-11-22 14:53:35 +04:30

59 lines
1.7 KiB
Dart
Executable File

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<String, dynamic> _user = {};
Map<String, dynamic> get user {
return {..._user};
}
String? _token;
Future<void> setToken() async {
final prefs = await SharedPreferences.getInstance();
if (!prefs.containsKey('auth')) {
return;
}
final auth = json.decode(prefs.getString('auth')!) as Map<String, dynamic>;
_token = auth['token'];
notifyListeners();
}
Future<Map<String, dynamic>> getUserData() async {
final prefs = await SharedPreferences.getInstance();
final auth = json.decode(prefs.getString('auth')!) as Map<String, dynamic>;
_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 {};
}
}
}