|
|
@@ -5,19 +5,15 @@ module Mutations
|
|
|
argument :base64_encoded_pokemon_file, GraphQL::STRING_TYPE, required: true
|
|
|
|
|
|
field :pokemon, Types::PokemonType, null: true
|
|
|
- field :errors, [GraphQL::STRING_TYPE], null: false
|
|
|
+ field :error, Types::ErrorType, null: true
|
|
|
|
|
|
def resolve(base64_encoded_pokemon_file:)
|
|
|
- client = PKParse::Client.new
|
|
|
- response = client.parse_base64(base64_encoded_pokemon_file)
|
|
|
-
|
|
|
- ::Pokemon.transaction do
|
|
|
- @pokemon = ::Pokemon.create!(response.pokemon.map(&:to_h))
|
|
|
- end
|
|
|
+ service = CreatePokemonFromBase64Service.new
|
|
|
+ result = service.execute(base64_encoded_pokemon_file)
|
|
|
|
|
|
{
|
|
|
- pokemon: @pokemon.first,
|
|
|
- errors: [],
|
|
|
+ pokemon: result[:pokemon]&.first,
|
|
|
+ error: result[:error],
|
|
|
}
|
|
|
end
|
|
|
end
|