feat: more types

chore: cleanup
This commit is contained in:
Chen Asraf
2023-07-15 02:21:00 +03:00
parent 55aa878c7b
commit 9bc5f691ce
36 changed files with 17 additions and 854 deletions

View File

@@ -28,15 +28,6 @@ class PokemonAbility with ResourceBase {
ability: AbilityResource.fromJson(json['ability']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'is_hidden': isHidden,
'slot': slot,
'ability': ability.toJson(),
};
}
}
class Ability with ResourceBase {
@@ -81,21 +72,6 @@ class Ability with ResourceBase {
pokemon: json['pokemon'].map<AbilityPokemon>((e) => AbilityPokemon.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'is_main_series': isMainSeries,
'generation': generation.toJson(),
'names': names.map((e) => e.toJson()).toList(),
'effect_entries': effectEntries.map((e) => e.toJson()).toList(),
'effect_changes': effectChanges.map((e) => e.toJson()).toList(),
'flavor_text_entries': flavorTextEntries.map((e) => e.toJson()).toList(),
'pokemon': pokemon.map((e) => e.toJson()).toList(),
};
}
}
class AbilityPokemon with ResourceBase {
@@ -121,15 +97,6 @@ class AbilityPokemon with ResourceBase {
pokemon: PokemonResource.fromJson(json['pokemon']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'is_hidden': isHidden,
'slot': slot,
'pokemon': pokemon.toJson(),
};
}
}
class AbilityFlavorText with ResourceBase {
@@ -155,15 +122,6 @@ class AbilityFlavorText with ResourceBase {
versionGroup: NamedAPIResource.fromJson(json['version_group']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'flavor_text': flavorText,
'language': language.toJson(),
'version_group': versionGroup.toJson(),
};
}
}
class AbilityEffectChange with ResourceBase {
@@ -185,14 +143,6 @@ class AbilityEffectChange with ResourceBase {
versionGroup: NamedAPIResource.fromJson(json['version_group']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'effect_entries': effectEntries.map((e) => e.toJson()).toList(),
'version_group': versionGroup.toJson(),
};
}
}
class VerboseEffect with ResourceBase {
@@ -218,15 +168,6 @@ class VerboseEffect with ResourceBase {
language: NamedAPIResource.fromJson(json['language']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'effect': effect,
'short_effect': shortEffect,
'language': language.toJson(),
};
}
}
class AbilityResource extends NamedAPIResource<Ability> {
@@ -244,13 +185,6 @@ class AbilityResource extends NamedAPIResource<Ability> {
);
}
@override
Map<String, dynamic> toJson() {
return {
'name': name,
};
}
@override
Ability mapper(dynamic data) {
return Ability.fromJson(data);

View File

@@ -15,6 +15,6 @@ mixin ResourceBase {
return '$runtimeType${toJson()}';
}
Map<String, dynamic> toJson();
Map<String, dynamic> toJson() => rawData;
}

View File

@@ -21,7 +21,7 @@ abstract class CacheManager {
T Function(dynamic data)? onResult,
int? retry,
}) async {
final _retry = retry ?? 3;
final remainingRetries = retry ?? 3;
Response? response;
try {
final mapper = onResult ?? ((data) => data);
@@ -34,8 +34,8 @@ abstract class CacheManager {
add(key, response.data);
return value;
} catch (e, stack) {
if (_retry > 0) {
return getOne(key, onResult: onResult, retry: _retry - 1);
if (remainingRetries > 0) {
return getOne(key, onResult: onResult, retry: remainingRetries - 1);
}
remove(key);
print('Error getting $key: $e.\nResponse: $response');

View File

@@ -31,15 +31,4 @@ class Characteristic with ResourceBase {
highestStat: NamedAPIResource.fromJson(json['highest_stat']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'id': id,
'gene_modulo': geneModulo,
'possible_values': possibleValues,
'descriptions': descriptions.map((e) => e.toJson()).toList(),
'highest_stat': highestStat.toJson(),
};
}
}

View File

@@ -21,11 +21,5 @@ class Description with ResourceBase {
language: NamedAPIResource.fromJson(json['language']),
);
}
@override
Map<String, dynamic> toJson() => {
'description': description,
'language': language.toJson(),
};
}

View File

@@ -169,14 +169,6 @@ class EncounterMethodRate with ResourceBase {
json['version_details'].map<EncounterVersionDetails>((e) => EncounterVersionDetails.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'encounter_method': encounterMethod.toJson(),
'version_details': versionDetails.map((e) => e.toJson()).toList(),
};
}
}
class EncounterVersionDetails with ResourceBase {
@@ -201,13 +193,5 @@ class EncounterVersionDetails with ResourceBase {
version: NamedAPIResource.fromJson(json['version']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'rate': rate,
'version': version.toJson(),
};
}
}

View File

@@ -24,13 +24,6 @@ class FlavorText with ResourceBase {
version: NamedAPIResource.fromJson(json['version']),
);
}
@override
Map<String, dynamic> toJson() => {
'flavor_text': flavorText,
'language': language.toJson(),
'version': version.toJson(),
};
}
class MoveFlavorText with ResourceBase {
@@ -56,11 +49,4 @@ class MoveFlavorText with ResourceBase {
versionGroup: NamedAPIResource.fromJson(json['version_group']),
);
}
@override
Map<String, dynamic> toJson() => {
'flavor_text': flavorText,
'language': language.toJson(),
'version_group': versionGroup.toJson(),
};
}

View File

@@ -43,19 +43,6 @@ class Generation with ResourceBase {
versionGroups: json['version_groups'].map((e) => NamedAPIResource.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() => {
'id': id,
'name': name,
'abilities': abilities.map((e) => e.toJson()).toList(),
'names': names.map((e) => e.toJson()).toList(),
'main_region': mainRegion.toJson(),
'moves': moves.map((e) => e.toJson()).toList(),
'pokemon_species': pokemonSpecies.map((e) => e.toJson()).toList(),
'types': types.map((e) => e.toJson()).toList(),
'version_groups': versionGroups.map((e) => e.toJson()).toList(),
};
}
class GenerationResource extends NamedAPIResource<Generation> {

View File

@@ -22,11 +22,5 @@ class GenerationGameIndex with ResourceBase {
gameIndex: json['game_index'],
generation: NamedAPIResource.fromJson(json['generation']),
);
@override
Map<String, dynamic> toJson() => {
'game_index': gameIndex,
'generation': generation.toJson(),
};
}

View File

@@ -21,11 +21,5 @@ class Genus with ResourceBase {
language: NamedAPIResource.fromJson(json['language']),
);
}
@override
Map<String, dynamic> toJson() => {
'genus': genus,
'language': language.toJson(),
};
}

View File

@@ -44,11 +44,5 @@ class PokemonHeldItemVersion with ResourceBase {
version: NamedAPIResource.fromJson(json["version"]),
rarity: json["rarity"],
);
@override
Map<String, dynamic> toJson() => {
"version": version.toJson(),
"rarity": rarity,
};
}

View File

@@ -34,18 +34,6 @@ class Language with ResourceBase {
names: json['names'].map((e) => Name.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'official': official,
'iso639': iso639,
'iso3166': iso3166,
'names': names.map((e) => e.toJson()).toList(),
};
}
}
class LanguageResource extends NamedAPIResource<Language> {

View File

@@ -35,18 +35,6 @@ class Location with ResourceBase {
gameIndices: json['game_indices'].map<GenerationGameIndex>((e) => GenerationGameIndex.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'names': names.map((e) => e.toJson()).toList(),
'region': region.toJson(),
'areas': areas.map((e) => e.toJson()).toList(),
'game_indices': gameIndices.map((e) => e.toJson()).toList(),
};
}
}
class LocationResource extends NamedAPIResource<Location> {

View File

@@ -63,16 +63,6 @@ class LocationArea with ResourceBase {
json['encounter_method_rates'].map<EncounterMethodRate>((e) => EncounterMethodRate.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'game_index': gameIndex,
'location': location.toJson(),
'names': names.map((e) => e.toJson()).toList(),
'pokemon_encounters': pokemonEncounters.map((e) => e.toJson()).toList(),
};
}
}
class PokemonLocationAreaResource extends APIResource<List<PokemonLocationArea>> {

View File

@@ -27,14 +27,6 @@ class PokemonMove with ResourceBase {
((json['version_group_details'] ?? []) as List<dynamic>).map((e) => PokemonMoveVersion.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'move': move?.toJson(),
'version_group_details': versionGroupDetails.map((e) => e.toJson()).toList(),
};
}
}
class Move with ResourceBase {
@@ -58,7 +50,7 @@ class Move with ResourceBase {
final List<Name> names;
final PastMoveStatValues pastValues;
final List<dynamic> statChanges;
final dynamic superContestEffect;
final NamedAPIResource superContestEffect;
final NamedAPIResource? target;
final NamedAPIResource? type;
@@ -117,40 +109,12 @@ class Move with ResourceBase {
names: (json['names'] as List<dynamic>).map((e) => Name.fromJson(e)).toList(),
pastValues: PastMoveStatValues.fromJson(json['past_values']),
statChanges: json['stat_changes'],
superContestEffect: json['super_contest_effect'],
superContestEffect: NamedAPIResource.fromJson(json['super_contest_effect']),
target: json['target'] != null ? NamedAPIResource.fromJson(json['target']) : null,
type: json['type'] != null ? NamedAPIResource.fromJson(json['type']) : null,
);
}
@override
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'accuracy': accuracy,
'effect_chance': effectChance,
'pp': pp,
'priority': priority,
'power': power,
'contest_combos': contestCombos?.toJson(),
'contest_type': contestType?.toJson(),
'contest_effect': contestEffect?.toJson(),
'damage_class': damageClass?.toJson(),
'effect_entries': effectEntries.map((e) => e.toJson()).toList(),
'effect_changes': effectChanges.map((e) => e.toJson()).toList(),
'flavor_text_entries': flavorTextEntries,
'generation': generation?.toJson(),
'machines': machines,
'meta': metaData,
'names': names.map((e) => e.toJson()).toList(),
'past_values': pastValues,
'stat_changes': statChanges,
'super_contest_effect': superContestEffect,
'target': target?.toJson(),
'type': type?.toJson(),
};
}
}
class MoveResource extends NamedAPIResource<Move> {
@@ -164,14 +128,6 @@ class MoveResource extends NamedAPIResource<Move> {
);
}
@override
Map<String, dynamic> toJson() {
return {
'name': name,
'url': url,
};
}
@override
Move mapper(data) => Move.fromJson(data);
}
@@ -187,20 +143,12 @@ class PokemonMoveResource extends NamedAPIResource<PokemonMove> {
);
}
@override
Map<String, dynamic> toJson() {
return {
'name': name,
'url': url,
};
}
@override
PokemonMove mapper(data) => PokemonMove.fromJson(data);
}
class PokemonMoveVersion with ResourceBase {
final NamedAPIResource? versionGroup;
final VersionGroupResource? versionGroup;
final int? levelLearnedAt;
final MoveLearnMethodResource? moveLearnMethod;
@override
@@ -216,21 +164,12 @@ class PokemonMoveVersion with ResourceBase {
factory PokemonMoveVersion.fromJson(Map<String, dynamic> json) {
return PokemonMoveVersion(
rawData: json,
versionGroup: json['version_group'] != null ? NamedAPIResource.fromJson(json['version_group']) : null,
versionGroup: json['version_group'] != null ? VersionGroupResource.fromJson(json['version_group']) : null,
levelLearnedAt: json['level_learned_at'],
moveLearnMethod:
json['move_learn_method'] != null ? MoveLearnMethodResource.fromJson(json['move_learn_method']) : null,
);
}
@override
Map<String, dynamic> toJson() {
return {
'version_group': versionGroup?.toJson(),
'level_learned_at': levelLearnedAt,
'move_learn_method': moveLearnMethod?.toJson(),
};
}
}
class MoveLearnMethod with ResourceBase {
@@ -262,17 +201,6 @@ class MoveLearnMethod with ResourceBase {
descriptions: (json['descriptions'] as List<dynamic>).map((e) => Description.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'names': names.map((e) => e.toJson()).toList(),
'version_groups': versionGroups.map((e) => e.toJson()).toList(),
'descriptions': descriptions.map((e) => e.toJson()).toList(),
};
}
}
class PokemonMoveVersionResource extends NamedAPIResource<PokemonMoveVersion> {
@@ -352,17 +280,4 @@ class PastMoveStatValues with ResourceBase {
versionGroup: json['version_group'] != null ? VersionGroupResource.fromJson(json['version_group']) : null,
);
}
@override
Map<String, dynamic> toJson() {
return {
'accuracy': accuracy,
'effect_chance': effectChance,
'power': power,
'pp': pp,
'effect_entries': effectEntries,
'type': type?.toJson(),
'version_group': versionGroup?.toJson(),
};
}
}

View File

@@ -59,14 +59,5 @@ class MoveBattleStyle with ResourceBase {
names: json['names'].map((e) => Name.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'names': names.map((e) => e.toJson()).toList(),
};
}
}

View File

@@ -33,17 +33,6 @@ class MoveDamageClass with ResourceBase {
names: json['names'].map((e) => Name.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'descriptions': descriptions.map((e) => e.toJson()).toList(),
'moves': moves.map((e) => e.toJson()).toList(),
'names': names.map((e) => e.toJson()).toList(),
};
}
}
class MoveDamageClassResource extends NamedAPIResource<MoveDamageClass> {

View File

@@ -22,14 +22,6 @@ class MoveStatAffectSets with ResourceBase {
decrease: json['decrease'].map((e) => MoveStatAffect.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'increase': increase.map((e) => e.toJson()).toList(),
'decrease': decrease.map((e) => e.toJson()).toList(),
};
}
}
class MoveStatAffect with ResourceBase {
@@ -52,12 +44,4 @@ class MoveStatAffect with ResourceBase {
move: MoveResource.fromJson(json['move']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'change': change,
'move': move.toJson(),
};
}
}

View File

@@ -20,13 +20,5 @@ class Name with ResourceBase {
language: NamedAPIResource.fromJson(json['language']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'name': name,
'language': language.toJson(),
};
}
}

View File

@@ -11,23 +11,10 @@ class APIResource<T> with ResourceBase {
});
factory APIResource.fromJson(Map<String, dynamic> json) {
try {
return APIResource(
rawData: json,
url: json['url'],
);
} catch (e, stack) {
print('Error parsing APIResource: $e, json: $json');
print(stack);
rethrow;
}
}
@override
Map<String, dynamic> toJson() {
return {
'url': url,
};
return APIResource(
rawData: json,
url: json['url'],
);
}
T mapper(dynamic data) {
@@ -53,25 +40,11 @@ class NamedAPIResource<T> extends APIResource<T> {
});
factory NamedAPIResource.fromJson(Map<String, dynamic> json) {
try {
return NamedAPIResource(
rawData: json,
name: json['name'],
url: json['url'],
);
} catch (e, stack) {
print('Error parsing NamedAPIResource: $e, json: $json');
print(stack);
rethrow;
}
}
@override
Map<String, dynamic> toJson() {
return {
'name': name,
'url': url,
};
return NamedAPIResource(
rawData: json,
name: json['name'],
url: json['url'],
);
}
}

View File

@@ -45,19 +45,4 @@ class Nature with ResourceBase {
names: json['names'].map((e) => Name.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'decreased_stat': decreasedStat.toJson(),
'increased_stat': increasedStat.toJson(),
'hates_flavor': hatesFlavor.toJson(),
'likes_flavor': likesFlavor.toJson(),
'pokeathlon_stat_changes': pokeathlonStatChanges.map((e) => e.toJson()).toList(),
'move_battle_style_preferences': moveBattleStylePreferences.map((e) => e.toJson()).toList(),
'names': names.map((e) => e.toJson()).toList(),
};
}
}

View File

@@ -22,14 +22,6 @@ class NatureStatAffectSets with ResourceBase {
decrease: json['decrease'].map((e) => NamedAPIResource.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'increase': increase.map((e) => e.toJson()).toList(),
'decrease': decrease.map((e) => e.toJson()).toList(),
};
}
}
class NatureStatChange with ResourceBase {
@@ -52,14 +44,6 @@ class NatureStatChange with ResourceBase {
pokeathlonStat: NamedAPIResource.fromJson(json['pokeathlon_stat']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'max_change': maxChange,
'pokeathlon_stat': pokeathlonStat.toJson(),
};
}
}
class PokeathlonStat with ResourceBase {
@@ -88,16 +72,6 @@ class PokeathlonStat with ResourceBase {
affectingNatures: NaturePokeathlonStatAffectSets.fromJson(json['affecting_natures']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'names': names,
'affecting_natures': affectingNatures.toJson(),
};
}
}
class NaturePokeathlonStatAffectSets with ResourceBase {
@@ -120,14 +94,6 @@ class NaturePokeathlonStatAffectSets with ResourceBase {
decrease: json['decrease'].map((e) => NaturePokeathlonStatAffect.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'increase': increase.map((e) => e.toJson()).toList(),
'decrease': decrease.map((e) => e.toJson()).toList(),
};
}
}
class NaturePokeathlonStatAffect with ResourceBase {
@@ -150,14 +116,6 @@ class NaturePokeathlonStatAffect with ResourceBase {
nature: NamedAPIResource.fromJson(json['nature']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'max_change': maxChange,
'nature': nature.toJson(),
};
}
}
class NatureResource extends NamedAPIResource<Nature> {

View File

@@ -24,12 +24,5 @@ class PalParkEncounterArea with ResourceBase {
area: NamedAPIResource.fromJson(json['area']),
);
}
@override
Map<String, dynamic> toJson() => {
'base_score': baseScore,
'rate': rate,
'area': area.toJson(),
};
}

View File

@@ -21,13 +21,5 @@ class PokemonTypePast with ResourceBase {
types: json['types'].map<PokemonType>((e) => PokemonType.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'generation': generation.toJson(),
'types': types.map((e) => e.toJson()).toList(),
};
}
}

View File

@@ -40,16 +40,5 @@ class Pokedex with ResourceBase {
versionGroups: json['version_groups'].map((e) => NamedAPIResource.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() => {
'id': id,
'name': name,
'descriptions': descriptions.map((e) => e.toJson()).toList(),
'names': names.map((e) => e.toJson()).toList(),
'region': region.toJson(),
'pokemon_entries': pokemonEntries.map((e) => e.toJson()).toList(),
'version_groups': versionGroups.map((e) => e.toJson()).toList(),
};
}

View File

@@ -21,11 +21,5 @@ class PokedexNumber with ResourceBase {
pokedex: NamedAPIResource.fromJson(json['pokedex']),
);
}
@override
Map<String, dynamic> toJson() => {
'entry_number': entryNumber,
'pokedex': pokedex.toJson(),
};
}

View File

@@ -113,30 +113,6 @@ class Pokemon with ResourceBase {
types: json['types'].map<PokemonType>((e) => PokemonType.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'name': name,
'id': id,
'height': height,
'weight': weight,
'is_default': isDefault,
'order': order,
'abilities': abilities,
'base_experience': baseExperience,
'forms': forms.map((e) => e.toJson()).toList(),
'game_indices': gameIndices.map((e) => e.toJson()).toList(),
'held_items': heldItems.map((e) => e.toJson()).toList(),
'location_area_encounters': locationAreaEncounters.url,
'moves': moves.map((e) => e.toJson()).toList(),
'past_types': pastTypes.map((e) => e.toJson()).toList(),
'sprites': sprites.toJson(),
'species': species.toJson(),
'stats': stats.map((e) => e.toJson()).toList(),
'types': types.map((e) => e.toJson()).toList(),
};
}
}
class PokemonResource extends NamedAPIResource<Pokemon> {

View File

@@ -21,11 +21,5 @@ class PokemonEntry with ResourceBase {
pokemonSpecies: NamedAPIResource.fromJson(json['pokemon_species']),
);
}
@override
Map<String, dynamic> toJson() => {
'entry_number': entryNumber,
'pokemon_species': pokemonSpecies.toJson(),
};
}

View File

@@ -118,37 +118,6 @@ class PokemonSpecies with ResourceBase {
? List<PokemonSpeciesVariety>.from(json['varieties'].map((x) => PokemonSpeciesVariety.fromJson(x)))
: [],
);
@override
Map<String, dynamic> toJson() => {
'base_happiness': baseHappiness,
'capture_rate': captureRate,
'color': color?.toJson(),
'egg_groups': eggGroups.map((x) => x.toJson()).toList(),
'evolution_chain': evolutionChain?.toJson(),
'evolves_from_species': evolvesFromSpecies?.toJson(),
'flavor_text_entries': flavorTextEntries.map((x) => x.toJson()).toList(),
'form_descriptions': formDescriptions.map((x) => x.toJson()).toList(),
'form_switchtable': formsSwitchable,
'gender_rate': genderRate,
'genera': genera.map((x) => x.toJson()).toList(),
'generation': generation.toJson(),
'growth_rate': growthRate.toJson(),
'habitat': habitat?.toJson(),
'has_gender_differences': hasGenderDifferences,
'hatch_counter': hatchCounter,
'id': id,
'is_baby': isBaby,
'is_legendary': isLegendary,
'is_mythical': isMythical,
'name': name,
'names': names.map((x) => x.toJson()).toList(),
'order': order,
'pal_park_encounters': palParkEncounters.map((x) => x.toJson()).toList(),
'pokedex_numbers': pokedexNumbers.map((x) => x.toJson()).toList(),
'shape': shape?.toJson(),
'varieties': varieties.map((x) => x.toJson()).toList(),
};
}
class PokemonSpeciesResource extends NamedAPIResource<PokemonSpecies> {

View File

@@ -21,11 +21,5 @@ class PokemonSpeciesVariety with ResourceBase {
pokemon: PokemonResource.fromJson(json['pokemon']),
);
}
@override
Map<String, dynamic> toJson() => {
'is_default': isDefault,
'pokemon': pokemon.toJson(),
};
}

View File

@@ -38,19 +38,6 @@ class Region with ResourceBase {
versionGroups: json['version_groups'].map<NamedAPIResource>((e) => NamedAPIResource.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'locations': locations.map((e) => e.toJson()).toList(),
'names': names.map((e) => e.toJson()).toList(),
'main_generation': mainGeneration.toJson(),
'pokedexes': pokedexes.map((e) => e.toJson()).toList(),
'version_groups': versionGroups.map((e) => e.toJson()).toList(),
};
}
}
class RegionResource extends NamedAPIResource<Region> {

View File

@@ -238,12 +238,6 @@ class PokemonSpritesGeneration1 with ResourceBase {
redBlue: json['red-blue'] != null ? PokemonSprites.fromJson(json['red-blue']) : null,
yellow: json['yellow'] != null ? PokemonSprites.fromJson(json['yellow']) : null,
);
@override
Map<String, dynamic> toJson() => {
'red-blue': redBlue?.toJson(),
'yellow': yellow?.toJson(),
};
}
class PokemonSpritesGeneration2 with ResourceBase {
@@ -267,13 +261,6 @@ class PokemonSpritesGeneration2 with ResourceBase {
gold: json['gold'] != null ? PokemonSprites.fromJson(json['gold']) : null,
silver: json['silver'] != null ? PokemonSprites.fromJson(json['silver']) : null,
);
@override
Map<String, dynamic> toJson() => {
'crystal': crystal?.toJson(),
'gold': gold?.toJson(),
'silver': silver?.toJson(),
};
}
class PokemonSpritesGeneration3 with ResourceBase {
@@ -297,13 +284,6 @@ class PokemonSpritesGeneration3 with ResourceBase {
fireredLeafgreen: json['firered-leafgreen'] != null ? PokemonSprites.fromJson(json['firered-leafgreen']) : null,
rubySapphire: json['ruby-sapphire'] != null ? PokemonSprites.fromJson(json['ruby-sapphire']) : null,
);
@override
Map<String, dynamic> toJson() => {
'emerald': emerald?.toJson(),
'firered-leafgreen': fireredLeafgreen?.toJson(),
'ruby-sapphire': rubySapphire?.toJson(),
};
}
class PokemonSpritesGeneration4 with ResourceBase {
@@ -328,13 +308,6 @@ class PokemonSpritesGeneration4 with ResourceBase {
json['heartgold-soulsilver'] != null ? PokemonSprites.fromJson(json['heartgold-soulsilver']) : null,
platinum: json['platinum'] != null ? PokemonSprites.fromJson(json['platinum']) : null,
);
@override
Map<String, dynamic> toJson() => {
'diamond-pearl': diamondPearl?.toJson(),
'heartgold-soulsilver': heartgoldSoulsilver?.toJson(),
'platinum': platinum?.toJson(),
};
}
class PokemonSpritesGeneration5 with ResourceBase {
@@ -352,11 +325,6 @@ class PokemonSpritesGeneration5 with ResourceBase {
rawData: json,
blackWhite: json['black-white'] != null ? PokemonSprites.fromJson(json['black-white']) : null,
);
@override
Map<String, dynamic> toJson() => {
'black-white': blackWhite?.toJson(),
};
}
class PokemonSpritesGeneration6 with ResourceBase {
@@ -378,12 +346,6 @@ class PokemonSpritesGeneration6 with ResourceBase {
json['omegaruby-alphasapphire'] != null ? PokemonSprites.fromJson(json['omegaruby-alphasapphire']) : null,
xy: json['x-y'] != null ? PokemonSprites.fromJson(json['x-y']) : null,
);
@override
Map<String, dynamic> toJson() => {
'omegaruby-alphasapphire': omegarubyAlphasapphire?.toJson(),
'x-y': xy?.toJson(),
};
}
class PokemonSpritesGeneration7 with ResourceBase {
@@ -405,12 +367,6 @@ class PokemonSpritesGeneration7 with ResourceBase {
ultraSunUltraMoon:
json['ultra-sun-ultra-moon'] != null ? PokemonSprites.fromJson(json['ultra-sun-ultra-moon']) : null,
);
@override
Map<String, dynamic> toJson() => {
'icons': icons?.toJson(),
'ultra-sun-ultra-moon': ultraSunUltraMoon?.toJson(),
};
}
class PokemonSpritesGeneration8 with ResourceBase {
@@ -428,189 +384,5 @@ class PokemonSpritesGeneration8 with ResourceBase {
rawData: json,
icons: json['icons'] != null ? PokemonSprites.fromJson(json['icons']) : null,
);
@override
Map<String, dynamic> toJson() => {
'icons': icons?.toJson(),
};
}
/*
"sprites": {
"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/1.png",
"back_female": null,
"back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/1.png",
"back_shiny_female": null,
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png",
"front_female": null,
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/1.png",
"front_shiny_female": null,
"other": {
"dream_world": {
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/dream-world/1.svg",
"front_female": null
},
"home": {
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/1.png",
"front_female": null,
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/shiny/1.png",
"front_shiny_female": null
},
"official-artwork": {
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/1.png",
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/shiny/1.png"
}
},
"versions": {
"generation-i": {
"red-blue": {
"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/back/1.png",
"back_gray": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/back/gray/1.png",
"back_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/transparent/back/1.png",
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/1.png",
"front_gray": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/gray/1.png",
"front_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/transparent/1.png"
},
"yellow": {
"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/back/1.png",
"back_gray": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/back/gray/1.png",
"back_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/transparent/back/1.png",
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/1.png",
"front_gray": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/gray/1.png",
"front_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/transparent/1.png"
}
},
"generation-ii": {
"crystal": {
"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/back/1.png",
"back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/back/shiny/1.png",
"back_shiny_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/back/shiny/1.png",
"back_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/back/1.png",
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/1.png",
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/shiny/1.png",
"front_shiny_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/shiny/1.png",
"front_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/1.png"
},
"gold": {
"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/back/1.png",
"back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/back/shiny/1.png",
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/1.png",
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/shiny/1.png",
"front_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/transparent/1.png"
},
"silver": {
"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/back/1.png",
"back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/back/shiny/1.png",
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/1.png",
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/shiny/1.png",
"front_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/transparent/1.png"
}
},
"generation-iii": {
"emerald": {
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/emerald/1.png",
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/emerald/shiny/1.png"
},
"firered-leafgreen": {
"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/back/1.png",
"back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/back/shiny/1.png",
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/1.png",
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/shiny/1.png"
},
"ruby-sapphire": {
"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/back/1.png",
"back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/back/shiny/1.png",
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/1.png",
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/shiny/1.png"
}
},
"generation-iv": {
"diamond-pearl": {
"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/1.png",
"back_female": null,
"back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/shiny/1.png",
"back_shiny_female": null,
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/1.png",
"front_female": null,
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/shiny/1.png",
"front_shiny_female": null
},
"heartgold-soulsilver": {
"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/1.png",
"back_female": null,
"back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/shiny/1.png",
"back_shiny_female": null,
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/1.png",
"front_female": null,
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/shiny/1.png",
"front_shiny_female": null
},
"platinum": {
"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/1.png",
"back_female": null,
"back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/shiny/1.png",
"back_shiny_female": null,
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/1.png",
"front_female": null,
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/shiny/1.png",
"front_shiny_female": null
}
},
"generation-v": {
"black-white": {
"animated": {
"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/1.gif",
"back_female": null,
"back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/shiny/1.gif",
"back_shiny_female": null,
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/1.gif",
"front_female": null,
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/shiny/1.gif",
"front_shiny_female": null
},
"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/1.png",
"back_female": null,
"back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/shiny/1.png",
"back_shiny_female": null,
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/1.png",
"front_female": null,
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/shiny/1.png",
"front_shiny_female": null
}
},
"generation-vi": {
"omegaruby-alphasapphire": {
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/1.png",
"front_female": null,
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/shiny/1.png",
"front_shiny_female": null
},
"x-y": {
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/1.png",
"front_female": null,
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/shiny/1.png",
"front_shiny_female": null
}
},
"generation-vii": {
"icons": {
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/icons/1.png",
"front_female": null
},
"ultra-sun-ultra-moon": {
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/1.png",
"front_female": null,
"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/shiny/1.png",
"front_shiny_female": null
}
},
"generation-viii": {
"icons": {
"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-viii/icons/1.png",
"front_female": null
}
}
}
},
*/

View File

@@ -29,15 +29,6 @@ class PokemonStat with ResourceBase {
stat: NamedAPIResource.fromJson(json['stat']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'base_stat': baseStat,
'effort': effort,
'stat': stat.toJson(),
};
}
}
class Stat with ResourceBase {
@@ -81,20 +72,5 @@ class Stat with ResourceBase {
characteristics: json['characteristics'].map((e) => Characteristic.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'game_index': gameIndex,
'is_battle_only': isBattleOnly,
'move_damage_class': moveDamageClass.toJson(),
'names': names.map((e) => e.toJson()).toList(),
'affecting_moves': affectingMoves.toJson(),
'affecting_natures': affectingNatures.toJson(),
'characteristics': characteristics.map((e) => e.toJson()).toList(),
};
}
}

View File

@@ -20,14 +20,6 @@ class PokemonType with ResourceBase {
type: TypeResource.fromJson(json['type']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'slot': slot,
'type': type.toJson(),
};
}
}
class Type with ResourceBase {
@@ -75,22 +67,6 @@ class Type with ResourceBase {
pokemon: (json['pokemon'] as List<dynamic>).map((e) => TypePokemon.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'damage_relations': damageRelations.toJson(),
'past_damage_relations': pastDamageRelations.map((e) => e.toJson()).toList(),
'game_indices': gameIndices.map((e) => e.toJson()).toList(),
'generation': generation.toJson(),
'names': names.map((e) => e.toJson()).toList(),
'move_damage_class': moveDamageClass.toJson(),
'moves': moves.map((e) => e.toJson()).toList(),
'pokemon': pokemon.map((e) => e.toJson()).toList(),
};
}
}
class TypeRelations with ResourceBase {
@@ -125,18 +101,6 @@ class TypeRelations with ResourceBase {
doubleDamageFrom: (json['double_damage_from'] as List<dynamic>).map((e) => NamedAPIResource.fromJson(e)).toList(),
);
}
@override
Map<String, dynamic> toJson() {
return {
'no_damage_to': noDamageTo.map((e) => e.toJson()).toList(),
'half_damage_to': halfDamageTo.map((e) => e.toJson()).toList(),
'double_damage_to': doubleDamageTo.map((e) => e.toJson()).toList(),
'no_damage_from': noDamageFrom.map((e) => e.toJson()).toList(),
'half_damage_from': halfDamageFrom.map((e) => e.toJson()).toList(),
'double_damage_from': doubleDamageFrom.map((e) => e.toJson()).toList(),
};
}
}
class TypeRelationsPast with ResourceBase {
@@ -159,14 +123,6 @@ class TypeRelationsPast with ResourceBase {
damageRelations: TypeRelations.fromJson(json['damage_relations']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'generation': generation.toJson(),
'damage_relations': damageRelations.toJson(),
};
}
}
class TypePokemon with ResourceBase {
@@ -189,14 +145,6 @@ class TypePokemon with ResourceBase {
pokemon: PokemonResource.fromJson(json['pokemon']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'slot': slot,
'pokemon': pokemon.toJson(),
};
}
}
class TypeResource extends NamedAPIResource<Type> {
@@ -210,14 +158,6 @@ class TypeResource extends NamedAPIResource<Type> {
);
}
@override
Map<String, dynamic> toJson() {
return {
'url': url,
'name': name,
};
}
@override
Type mapper(data) {
return Type.fromJson(data);

View File

@@ -20,13 +20,5 @@ class VersionGameIndex with ResourceBase {
version: NamedAPIResource.fromJson(json['version']),
);
}
@override
Map<String, dynamic> toJson() {
return {
'game_index': gameIndex,
'version': version.toJson(),
};
}
}

View File

@@ -41,20 +41,6 @@ class VersionGroup with ResourceBase {
rawData: json,
);
}
@override
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'order': order,
'generation': generation.toJson(),
'move_learn_methods': moveLearnMethods.map((e) => e.toJson()).toList(),
'pokedexes': pokedexes.map((e) => e.toJson()).toList(),
'regions': regions.map((e) => e.toJson()).toList(),
'versions': versions.map((e) => e.toJson()).toList(),
};
}
}
class VersionGroupResource extends NamedAPIResource<VersionGroup> {