Files
base_flutter/lib/core/providers/api_providers.dart
2025-09-26 18:48:14 +07:00

34 lines
1.3 KiB
Dart

import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../services/api_service.dart';
import 'network_providers.dart';
/// Provider for ExampleApiService
final exampleApiServiceProvider = Provider<ExampleApiService>((ref) {
final dioClient = ref.watch(dioClientProvider);
return ExampleApiService(dioClient);
});
/// Provider for AuthApiService
final authApiServiceProvider = Provider<AuthApiService>((ref) {
final dioClient = ref.watch(dioClientProvider);
return AuthApiService(dioClient);
});
/// Provider to check authentication status
final isAuthenticatedProvider = FutureProvider<bool>((ref) async {
final authService = ref.watch(authApiServiceProvider);
return await authService.isAuthenticated();
});
/// Example provider for user profile data
final userProfileProvider = FutureProvider.family<Map<String, dynamic>, String>((ref, userId) async {
final apiService = ref.watch(exampleApiServiceProvider);
return await apiService.getUserProfile(userId);
});
/// Example provider for posts list with pagination
final postsProvider = FutureProvider.family<List<Map<String, dynamic>>, ({int page, int limit})>((ref, params) async {
final apiService = ref.watch(exampleApiServiceProvider);
return await apiService.getPosts(page: params.page, limit: params.limit);
});