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