19 changed files with 105 additions and 169 deletions
-
1lib/core/constants/my_constants.dart
-
2lib/core/routers/my_routes.dart
-
2lib/core/widgets/about_us_dialog/about_us_dialog.dart
-
28lib/features/home/data/datasource/home_datasource.dart
-
13lib/features/home/data/model/home_model.dart
-
29lib/features/home/data/repository_impl/home_repository_impl.dart
-
14lib/features/home/domain/entity/home_entity.dart
-
8lib/features/home/domain/repository/home_repository.dart
-
17lib/features/home/domain/usecases/get_home_usecase.dart
-
28lib/features/home/presentation/bloc/home_bloc.dart
-
19lib/features/home/presentation/ui/home_page.dart
-
13lib/features/level/data/datasource/level_datasource.dart
-
58lib/features/level/presentation/bloc/level_bloc.dart
-
1lib/features/level/presentation/bloc/level_event.dart
-
22lib/features/level/presentation/ui/level_page.dart
-
7lib/init_bindings.dart
-
3lib/l10n/app_en.arb
-
6lib/l10n/app_localizations.dart
-
3lib/l10n/app_localizations_en.dart
@ -1,28 +0,0 @@ |
|||||
import 'package:hadi_hoda_flutter/core/constants/my_api.dart'; |
|
||||
import 'package:hadi_hoda_flutter/core/network/http_request.dart'; |
|
||||
import 'package:hadi_hoda_flutter/core/params/home_params.dart'; |
|
||||
import 'package:hadi_hoda_flutter/core/response/base_response.dart'; |
|
||||
import 'package:hadi_hoda_flutter/features/home/data/model/home_model.dart'; |
|
||||
import 'package:hadi_hoda_flutter/features/home/domain/entity/home_entity.dart'; |
|
||||
|
|
||||
abstract class IHomeDatasource { |
|
||||
Future<HomeEntity> getData({required HomeParams params}); |
|
||||
} |
|
||||
|
|
||||
class HomeDatasourceImpl implements IHomeDatasource { |
|
||||
final IHttpRequest httpRequest; |
|
||||
|
|
||||
const HomeDatasourceImpl(this.httpRequest); |
|
||||
|
|
||||
@override |
|
||||
Future<HomeEntity> getData({required HomeParams params}) async { |
|
||||
final response = await httpRequest.get( |
|
||||
path: MyApi.baseUrl, |
|
||||
); |
|
||||
|
|
||||
return BaseResponse.getData<HomeEntity>( |
|
||||
response?['data'], |
|
||||
(json) => HomeModel.fromJson(json), |
|
||||
); |
|
||||
} |
|
||||
} |
|
@ -1,13 +0,0 @@ |
|||||
import 'package:hadi_hoda_flutter/features/home/domain/entity/home_entity.dart'; |
|
||||
|
|
||||
class HomeModel extends HomeEntity { |
|
||||
const HomeModel({ |
|
||||
super.id, |
|
||||
}); |
|
||||
|
|
||||
factory HomeModel.fromJson(Map<String, dynamic> json) { |
|
||||
return HomeModel( |
|
||||
id: json['id'], |
|
||||
); |
|
||||
} |
|
||||
} |
|
@ -1,29 +0,0 @@ |
|||||
import 'package:hadi_hoda_flutter/core/params/home_params.dart'; |
|
||||
import 'package:flutter/foundation.dart'; |
|
||||
import 'package:hadi_hoda_flutter/core/error_handler/my_exception.dart'; |
|
||||
import 'package:hadi_hoda_flutter/core/utils/data_state.dart'; |
|
||||
import 'package:hadi_hoda_flutter/features/home/data/datasource/home_datasource.dart'; |
|
||||
import 'package:hadi_hoda_flutter/features/home/domain/entity/home_entity.dart'; |
|
||||
import 'package:hadi_hoda_flutter/features/home/domain/repository/home_repository.dart'; |
|
||||
|
|
||||
class HomeRepositoryImpl implements IHomeRepository { |
|
||||
final IHomeDatasource datasource; |
|
||||
|
|
||||
const HomeRepositoryImpl(this.datasource); |
|
||||
|
|
||||
@override |
|
||||
Future<DataState<HomeEntity, MyException>> getData({required HomeParams params}) async { |
|
||||
try { |
|
||||
final HomeEntity response = await datasource.getData(params: params); |
|
||||
return DataState.success(response); |
|
||||
} on MyException catch (e) { |
|
||||
return DataState.error(e); |
|
||||
} catch (e) { |
|
||||
if (kDebugMode) { |
|
||||
rethrow; |
|
||||
} else { |
|
||||
return DataState.error(MyException(errorMessage: '$e')); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
@ -1,14 +0,0 @@ |
|||||
import 'package:equatable/equatable.dart'; |
|
||||
|
|
||||
class HomeEntity extends Equatable { |
|
||||
final int? id; |
|
||||
|
|
||||
const HomeEntity({ |
|
||||
this.id, |
|
||||
}); |
|
||||
|
|
||||
@override |
|
||||
List<Object?> get props => [ |
|
||||
id, |
|
||||
]; |
|
||||
} |
|
@ -1,8 +0,0 @@ |
|||||
import 'package:hadi_hoda_flutter/core/error_handler/my_exception.dart'; |
|
||||
import 'package:hadi_hoda_flutter/core/params/home_params.dart'; |
|
||||
import 'package:hadi_hoda_flutter/core/utils/data_state.dart'; |
|
||||
import 'package:hadi_hoda_flutter/features/home/domain/entity/home_entity.dart'; |
|
||||
|
|
||||
abstract class IHomeRepository { |
|
||||
Future<DataState<HomeEntity, MyException>> getData({required HomeParams params}); |
|
||||
} |
|
@ -1,17 +0,0 @@ |
|||||
import 'package:hadi_hoda_flutter/core/error_handler/my_exception.dart'; |
|
||||
import 'package:hadi_hoda_flutter/core/params/home_params.dart'; |
|
||||
import 'package:hadi_hoda_flutter/core/usecase/usecase.dart'; |
|
||||
import 'package:hadi_hoda_flutter/core/utils/data_state.dart'; |
|
||||
import 'package:hadi_hoda_flutter/features/home/domain/entity/home_entity.dart'; |
|
||||
import 'package:hadi_hoda_flutter/features/home/domain/repository/home_repository.dart'; |
|
||||
|
|
||||
class GetHomeUseCase implements UseCase<HomeEntity, HomeParams> { |
|
||||
final IHomeRepository repository; |
|
||||
|
|
||||
const GetHomeUseCase(this.repository); |
|
||||
|
|
||||
@override |
|
||||
Future<DataState<HomeEntity, MyException>> call(HomeParams params) { |
|
||||
return repository.getData(params: params); |
|
||||
} |
|
||||
} |
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue