# 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 { pokemon: nil, errors: pkmn.errors.full_messages.map { |m| ::APIError::BaseError.new(m) }, } end end end end