Rumahjo-Android-APP/lib/data/cubits/property/create_advertisement_cubit.dart

60 lines
1.6 KiB
Dart
Raw Normal View History

2024-09-07 00:58:50 +00:00
// ignore_for_file: public_member_api_docs, sort_constructors_first
import 'dart:io';
import 'package:ebroker/data/model/property_model.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../../Repositories/advertisement_repository.dart';
abstract class CreateAdvertisementState {}
class CreateAdvertisementInitial extends CreateAdvertisementState {}
class CreateAdvertisementInProgress extends CreateAdvertisementState {}
class CreateAdvertisementSuccess extends CreateAdvertisementState {
final dynamic proeprtyId;
final PropertyModel property;
CreateAdvertisementSuccess({
required this.property,
required this.proeprtyId,
});
}
class CreateAdvertisementFailure extends CreateAdvertisementState {
final String errorMessage;
CreateAdvertisementFailure(
this.errorMessage,
);
}
class CreateAdvertisementCubit extends Cubit<CreateAdvertisementState> {
final AdvertisementRepository _advertisementRepository =
AdvertisementRepository();
CreateAdvertisementCubit()
: super(
CreateAdvertisementInitial(),
);
Future<void> create({
required String type,
required String propertyId,
File? image,
}) async {
try {
emit(CreateAdvertisementInProgress());
Map<String, dynamic> result = await _advertisementRepository.create(
propertyId: propertyId,
type: type,
image: image,
);
emit(CreateAdvertisementSuccess(
proeprtyId: propertyId,
property: PropertyModel.fromMap(result['data'][0])));
} catch (e) {
emit(CreateAdvertisementFailure(e.toString()));
}
}
}