Files
urukprize/mobile/lib/features/partners/cubit/partners_cubit.dart
T

37 lines
1.1 KiB
Dart

import 'package:flutter_bloc/flutter_bloc.dart';
import '../../../core/network/api_client.dart';
import 'partners_state.dart';
class PartnersCubit extends Cubit<PartnersState> {
final ApiClient _apiClient;
PartnersCubit({ApiClient? apiClient})
: _apiClient = apiClient ?? ApiClient(),
super(PartnersInitial());
Future<void> fetchPartners({String type = 'ALL', String country = 'ALL', String? search}) async {
emit(PartnersLoading());
try {
final queryParams = <String, String>{};
if (type != 'ALL') queryParams['type'] = type;
if (country != 'ALL') queryParams['country'] = country;
if (search != null && search.isNotEmpty) queryParams['search'] = search;
final res = await _apiClient.get(
'/api/v1/partners',
queryParams: queryParams,
requiresAuth: false,
);
final list = (res['data'] as List<dynamic>?) ?? [];
emit(PartnersLoaded(
partners: list,
selectedType: type,
selectedCountry: country,
));
} catch (e) {
emit(PartnersFailure(e.toString()));
}
}
}