Browse Source
Merge pull request 'feature/home' (#14) from feature/home into develop
Merge pull request 'feature/home' (#14) from feature/home into develop
Reviewed-on: https://git.nwhco.ir/amirreza.chegini/hade_hoda_flutter/pulls/14pull/15/head
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
-
17lib/features/home/presentation/ui/home_page.dart
-
13lib/features/level/data/datasource/level_datasource.dart
-
56lib/features/level/presentation/bloc/level_bloc.dart
-
1lib/features/level/presentation/bloc/level_event.dart
-
20lib/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