From 90808f51aab04c5098db9603b173c7ae1c7060d2 Mon Sep 17 00:00:00 2001 From: revengel66 Date: Fri, 20 Dec 2024 14:50:19 +0400 Subject: [PATCH] in process 2 --- lib/data/dtos/titans_dto.dart | 42 +++++++------------------ lib/data/mappes/titans_mapper.dart | 8 ++--- lib/repositories/potter_repository.dart | 4 +-- 3 files changed, 17 insertions(+), 37 deletions(-) diff --git a/lib/data/dtos/titans_dto.dart b/lib/data/dtos/titans_dto.dart index 4a44657..ac5f29c 100644 --- a/lib/data/dtos/titans_dto.dart +++ b/lib/data/dtos/titans_dto.dart @@ -1,43 +1,23 @@ import 'package:json_annotation/json_annotation.dart'; -part 'characters_dto.g.dart'; +part 'titans_dto.g.dart'; @JsonSerializable(createToJson: false) -class CharactersDto { - final List? results; +class TitansDto { + final List? results; final InfoDto? info; - const CharactersDto({this.results, this.info}); - factory CharactersDto.fromJson(Map json) => _$CharactersDtoFromJson(json); + const TitansDto({this.results, this.info}); + factory TitansDto.fromJson(Map json) => _$TitansDtoFromJson(json); } @JsonSerializable(createToJson: false) -class CharactersDataDto { +class TitansResultsDto { final String? id; final String? name; - final String? status; - final List species; - final String? age; - const CharactersDataDto({this.id, this.type, this.attributes}); - factory CharactersDataDto.fromJson(Map json) => + final String? height; + final List? abilities; + final String? allegiance; + const TitansResultsDto({this.id, this.name, this.height, this.abilities, this.allegiance}); + factory TitansResultsDto.fromJson(Map json) => _$CharactersDataDtoFromJson(json); } - -@JsonSerializable(createToJson: false) -class InfoDto { - final PaginationDto? pagination; - - const InfoDto({this.pagination}); - - factory InfoDto.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/mappes/titans_mapper.dart b/lib/data/mappes/titans_mapper.dart index 1d98608..e622697 100644 --- a/lib/data/mappes/titans_mapper.dart +++ b/lib/data/mappes/titans_mapper.dart @@ -1,12 +1,12 @@ -import 'package:pmd_lab/data/dtos/characters_dto.dart'; +import 'package:pmd_lab/data/dtos/titans_dto.dart'; import 'package:pmd_lab/domain/models/card.dart'; import 'package:pmd_lab/domain/models/home.dart'; const _imagePlaceholder = 'https://cdn-icons-png.flaticon.com/512/4054/4054617.png'; -extension CharacterDataDtoToModel on CharactersDataDto { +extension CharacterDataDtoToModel on TitansResultsDto { CardData toDomain() => CardData( - attributes?.name ?? 'UNKNOWN', + name: ?.name ?? 'UNKNOWN', img: attributes?.image ?? _imagePlaceholder, description: _makeDescription(attributes?.born, attributes?.died), id: id, @@ -22,7 +22,7 @@ extension CharacterDataDtoToModel on CharactersDataDto { } } -extension CharactersDtoToModel on CharactersDto { +extension CharactersDtoToModel on TitansDto { HomeData toDomain() => HomeData( data: results?.map((e) => e.toDomain()).toList(), nextPage: info?.pagination?.next, diff --git a/lib/repositories/potter_repository.dart b/lib/repositories/potter_repository.dart index 1fc8960..0a2a024 100644 --- a/lib/repositories/potter_repository.dart +++ b/lib/repositories/potter_repository.dart @@ -1,5 +1,5 @@ import 'package:dio/dio.dart'; -import 'package:pmd_lab/data/dtos/characters_dto.dart'; +import 'package:pmd_lab/data/dtos/titans_dto.dart'; import 'package:pmd_lab/data/mappes/characters_mapper.dart'; import 'package:pmd_lab/domain/models/home.dart'; import 'package:pmd_lab/repositories/api_interface.dart'; @@ -33,7 +33,7 @@ class PotterRepository extends ApiInterface { }, ); - final CharactersDto dto = CharactersDto.fromJson(response.data as Map); + final TitansDto dto = TitansDto.fromJson(response.data as Map); final HomeData data = dto.toDomain(); return data; } on DioException catch (e) {