diff --git a/lib/data/dtos/characters_dto.dart b/lib/data/dtos/characters_dto.dart deleted file mode 100644 index 2bccf76..0000000 --- a/lib/data/dtos/characters_dto.dart +++ /dev/null @@ -1,60 +0,0 @@ -import 'package:json_annotation/json_annotation.dart'; - -part 'characters_dto.g.dart'; - -@JsonSerializable(createToJson: false) -class CharactersDto { - final List? data; - final MetaDto? meta; - - const CharactersDto({ - this.data, - this.meta, - }); - - factory CharactersDto.fromJson(Map json) => _$CharactersDtoFromJson(json); -} - -@JsonSerializable(createToJson: false) -class CharacterDataDto { - final String? id; - final String? type; - final CharacterAttributesDataDto? attributes; - - const CharacterDataDto({this.id, this.type, this.attributes}); - - factory CharacterDataDto.fromJson(Map json) => _$CharacterDataDtoFromJson(json); -} - -@JsonSerializable(createToJson: false) -class CharacterAttributesDataDto { - final String? name; - final String? born; - final String? died; - final String? image; - - const CharacterAttributesDataDto({this.name, this.born, this.died, this.image}); - - factory CharacterAttributesDataDto.fromJson(Map json) => - _$CharacterAttributesDataDtoFromJson(json); -} - -@JsonSerializable(createToJson: false) -class MetaDto { - final PaginationDto? pagination; - - const MetaDto({this.pagination}); - - factory MetaDto.fromJson(Map json) => _$MetaDtoFromJson(json); -} - -@JsonSerializable(createToJson: false) -class PaginationDto { - final int? current; - final int? next; - final int? last; - - const PaginationDto({this.current, this.next, this.last}); - - factory PaginationDto.fromJson(Map json) => _$PaginationDtoFromJson(json); -} diff --git a/lib/data/dtos/characters_dto.g.dart b/lib/data/dtos/characters_dto.g.dart deleted file mode 100644 index c4e1b40..0000000 --- a/lib/data/dtos/characters_dto.g.dart +++ /dev/null @@ -1,49 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'characters_dto.dart'; - -// ************************************************************************** -// JsonSerializableGenerator -// ************************************************************************** - -CharactersDto _$CharactersDtoFromJson(Map json) => - CharactersDto( - data: (json['data'] as List?) - ?.map((e) => CharacterDataDto.fromJson(e as Map)) - .toList(), - meta: json['meta'] == null - ? null - : MetaDto.fromJson(json['meta'] as Map), - ); - -CharacterDataDto _$CharacterDataDtoFromJson(Map json) => - CharacterDataDto( - id: json['id'] as String?, - type: json['type'] as String?, - attributes: json['attributes'] == null - ? null - : CharacterAttributesDataDto.fromJson( - json['attributes'] as Map), - ); - -CharacterAttributesDataDto _$CharacterAttributesDataDtoFromJson( - Map json) => - CharacterAttributesDataDto( - name: json['name'] as String?, - born: json['born'] as String?, - died: json['died'] as String?, - image: json['image'] as String?, - ); - -MetaDto _$MetaDtoFromJson(Map json) => MetaDto( - pagination: json['pagination'] == null - ? null - : PaginationDto.fromJson(json['pagination'] as Map), - ); - -PaginationDto _$PaginationDtoFromJson(Map json) => - PaginationDto( - current: (json['current'] as num?)?.toInt(), - next: (json['next'] as num?)?.toInt(), - last: (json['last'] as num?)?.toInt(), - ); diff --git a/lib/data/mappers/characters_mapper.dart b/lib/data/mappers/characters_mapper.dart deleted file mode 100644 index fc84fad..0000000 --- a/lib/data/mappers/characters_mapper.dart +++ /dev/null @@ -1,34 +0,0 @@ -import 'package:project1/data/dtos/characters_dto.dart'; -import 'package:project1/domain/models/card.dart'; - -import '../../domain/models/home.dart'; - -const _imagePlaceholder = - 'https://upload.wikimedia.org/wikipedia/en/archive/b/b1/20210811082420%21Portrait_placeholder.png'; - -extension CharactersDtoToModel on CharactersDto { - HomeData toDomain() => HomeData( - data: data?.map((e) => e.toDomain()).toList(), - nextPage: meta?.pagination?.next, - ); -} - -extension CharacterDataDtoToModel on CharacterDataDto { - CardData toDomain() => CardData( - attributes?.name ?? 'UNKNOWN', - imageUrl: attributes?.image ?? _imagePlaceholder, - descriptionText: - _makeDescriptionText(attributes?.born, attributes?.died), - id: id, - ); - - String _makeDescriptionText(String? born, String? died) { - return born != null && died != null - ? '$born - $died' - : born != null - ? 'born: $born' - : died != null - ? 'died: $died' - : ''; - } -} diff --git a/lib/data/repositories/mock_repository.dart b/lib/data/repositories/mock_repository.dart index 36085b8..5f1dd5e 100644 --- a/lib/data/repositories/mock_repository.dart +++ b/lib/data/repositories/mock_repository.dart @@ -17,14 +17,12 @@ class MockRepository extends ApiInterface { CardData( 'Hi', descriptionText: 'pretty face', - icon: Icons.hail, imageUrl: 'https://www.thesprucepets.com/thmb/nKNaS4I586B_H7sEUw9QAXvWM_0=/2121x0/filters:no_upscale():strip_icc()/GettyImages-135630198-5ba7d225c9e77c0050cff91b.jpg', ), CardData( 'Orange', descriptionText: 'I like autumn', - icon: Icons.warning_amber, imageUrl: 'https://furmanagers.com/wp-content/uploads/2019/11/dreamstime_l_22075357.jpg', ), ], diff --git a/lib/data/repositories/potter_repository.dart b/lib/data/repositories/potter_repository.dart deleted file mode 100644 index bcc3914..0000000 --- a/lib/data/repositories/potter_repository.dart +++ /dev/null @@ -1,46 +0,0 @@ -import 'package:dio/dio.dart'; -import 'package:project1/data/dtos/characters_dto.dart'; -import 'package:project1/data/mappers/characters_mapper.dart'; -import 'package:project1/data/repositories/api_interface.dart'; -import 'package:project1/domain/models/card.dart'; -import 'package:project1/domain/models/home.dart'; -import 'package:project1/presentation/home_page/bloc/events.dart'; -import 'package:pretty_dio_logger/pretty_dio_logger.dart'; - -class PotterRepository extends ApiInterface { - static final Dio _dio = Dio() - ..interceptors.add(PrettyDioLogger( - requestHeader: true, - requestBody: true, - )); - - static const String _baseUrl = 'https://api.potterdb.com'; - - @override - Future loadData({ - OnErrorCallback? onError, - String? q, - int page = 1, - int pageSize = 7, - }) async { - try { - const String url = '$_baseUrl/v1/characters'; - - final Response response = await _dio.get>( - url, - queryParameters: { - 'filter[name_cont]': q, - 'page[number]': page, - 'page[size]': pageSize, - }, - ); - - final CharactersDto dto = CharactersDto.fromJson(response.data as Map); - final HomeData data = dto.toDomain(); - return data; - } on DioException catch (e) { - onError?.call(e.error?.toString()); - return null; - } - } -} diff --git a/lib/domain/models/card.dart b/lib/domain/models/card.dart index 396630c..022430b 100644 --- a/lib/domain/models/card.dart +++ b/lib/domain/models/card.dart @@ -3,14 +3,12 @@ import 'package:flutter/material.dart'; class CardData { final String text; final String descriptionText; - final IconData icon; final String? imageUrl; final String? id; CardData( this.text, { required this.descriptionText, - this.icon = Icons.cake, this.imageUrl, this.id, }); diff --git a/lib/main.dart b/lib/main.dart index 358a7ce..619b684 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -9,7 +9,6 @@ import 'package:project1/presentation/locale_bloc/locale_bloc.dart'; import 'package:project1/presentation/locale_bloc/locale_state.dart'; import 'components/locale/l10n/app_locale.dart'; import 'data/repositories/films_repository.dart'; -import 'data/repositories/potter_repository.dart'; void main() { runApp(const MyApp()); diff --git a/lib/presentation/home_page/bloc/bloc.dart b/lib/presentation/home_page/bloc/bloc.dart index 4b9594c..8d6638e 100644 --- a/lib/presentation/home_page/bloc/bloc.dart +++ b/lib/presentation/home_page/bloc/bloc.dart @@ -1,5 +1,4 @@ import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:project1/data/repositories/potter_repository.dart'; import 'package:project1/presentation/home_page/bloc/events.dart'; import 'package:project1/presentation/home_page/bloc/state.dart'; diff --git a/lib/presentation/home_page/card.dart b/lib/presentation/home_page/card.dart index d8a2dd9..a71c798 100644 --- a/lib/presentation/home_page/card.dart +++ b/lib/presentation/home_page/card.dart @@ -5,7 +5,6 @@ typedef OnLikeCallback = void Function(String? id, String title, bool isLiked)?; class _Card extends StatelessWidget { final String text; final String descriptionText; - final IconData icon; final String? imageUrl; final OnLikeCallback onLike; final VoidCallback? onTap; @@ -14,7 +13,6 @@ class _Card extends StatelessWidget { const _Card( this.text, { - this.icon = Icons.ac_unit_outlined, required this.descriptionText, this.imageUrl, this.onLike, @@ -32,7 +30,6 @@ class _Card extends StatelessWidget { _Card( data.text, descriptionText: data.descriptionText, - icon: data.icon, imageUrl: data.imageUrl, onLike: onLike, onTap: onTap, diff --git a/lib/presentation/home_page/home_page.dart b/lib/presentation/home_page/home_page.dart index 5acfb7d..bf9095b 100644 --- a/lib/presentation/home_page/home_page.dart +++ b/lib/presentation/home_page/home_page.dart @@ -3,7 +3,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:project1/components/extensions/context_x.dart'; import 'package:project1/components/utils/debounce.dart'; -import 'package:project1/data/repositories/potter_repository.dart'; import 'package:project1/domain/models/card.dart'; import 'package:project1/main.dart'; import 'package:project1/presentation/details_page/details_page.dart';