# 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