| 1234567891011121314151617181920212223242526272829 |
- # 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
|