| 12345678910111213141516171819202122232425262728 |
- # frozen_string_literal: true
- require './lib/api_error/base_error'
- module Mutations
- class CreatePokemon < Mutations::BaseMutation
- include ReturnsErrors
- field :pokemon, Types::PokemonType, null: true
- argument :pokedex_number, GraphQL::ID_TYPE, required: true
- argument :nickname, GraphQL::STRING_TYPE, required: false
- def resolve(nickname: nil, pokedex_number:)
- pkmn = Pokemon.new(nickname: nickname, pokedex_number: pokedex_number)
- if pkmn.save
- {pokemon: pkmn, errors: []}
- else
- errors = pkmn.errors.full_messages.map do |m|
- ::APIError::BaseError.new(m)
- end
- {pokemon: nil, errors: errors}
- end
- end
- end
- end
|