create_pokemon.rb 608 B

12345678910111213141516171819202122232425
  1. # frozen_string_literal: true
  2. class Mutations::CreatePokemon < Mutations::BaseMutation
  3. graphql_name 'CreatePokemon'
  4. argument :pokedex_number, Int, required: true
  5. argument :nickname, String, required: false
  6. field :pokemon, Types::PokemonType, null: true
  7. field :errors, [String], null: false
  8. def resolve(nickname: nil, pokedex_number:)
  9. pkmn = Pokemon.new(nickname: nickname, pokedex_number: pokedex_number)
  10. if pkmn.save
  11. {
  12. pokemon: pkmn,
  13. errors: [],
  14. }
  15. else
  16. {
  17. pokemon: nil,
  18. errors: pkmn.errors.full_messages,
  19. }
  20. end
  21. end
  22. end