import 'dart:convert'; import 'package:cheminova/models/user_model.dart'; import 'package:cheminova/utils/api_urls.dart'; import 'package:cheminova/utils/common_api_service.dart'; import 'package:cheminova/utils/show_snackbar.dart'; class HomeService { // Function to fetch user details from the API Future getUser({String? token}) async { try { // Making a GET request to fetch user profile data final response = await commonApiService( method: "GET", url: ApiUrls.profileUrl, additionalHeaders: { // Pass the token here 'Authorization': 'Bearer $token', }, fromJson: (json) { // Callback to parse the JSON response into a UserModel if (json['user'] != null) { // Parse the user data from the API response return UserModel.fromJson( json['user']); // Convert JSON to UserModel } return json as UserModel; // Return the response as UserModel if no 'user' key found }, ); return response; } catch (e) { print(e.toString()); showSnackbar(e.toString()); // Optional: show error using a Snackbar return null; } } // Function to send FCM token to the server Future?> fcmToken(Map data, String? token) async { try { final response = await commonApiService>( url: ApiUrls.fcmUrl, method: 'POST', body: data, fromJson: (json) => json as Map, // Parse JSON response additionalHeaders: { 'Authorization': 'Bearer $token', }, ); if (response != null) { return response; // Return parsed response } return null; } catch (e) { showSnackbar(e.toString()); return null; } } }