8.1.4 Creando la Mutation

Para realizar las operaciones POST, PUT y DELETE se realizan mediante Mutations. Agregamos una carpeta Mutation a nuestro proyecto y una clase CaducidadMutation

Método para agregar

En graphQL los servicios para agregar se realizan de la siguiente manera:

mutation {
  addCaducidad(input: {
    id: 1,
    clienteId: 1,
    productoId: 1,
    cantidad: 10,
    fecha: "2021-07-01"
  })
}

Para el método agregar vamos a realizar lo siguiente a nuestra clase CaducidadMutation.

  • Agrega un método AddCaducidad que recibirá igual como [Service] nuestro contexto (caducaContext) el LocService y un parámetro llamado caducidad del Modelo Caducidad y regresará un Objeto de la clase Caducidad.

  • Inicializamos nuestro objeto CaducidadDAO y llamamos al método AgregarAsync.

  • Si todo es correcto regresamos el objeto caducidad.

CaducidadMutation.cs
using System.Threading.Tasks;
using CaducaRest.DAO;
using CaducaRest.Models;
using CaducaRest.Resources;
using HotChocolate;

namespace CaducaRest.GraphQL.HotChocolate;

/// <summary>
/// Funciones para agregar, borrar o modificar
/// </summary>
public class CaducidadMutation
{
    public async Task<Caducidad> AddCaducidad(
                    [Service] CaducaContext caducaContext,
                    [Service] LocService locService, 
                    Caducidad caducidad)
    {
        CaducidadDAO caducidadDAO = new CaducidadDAO(caducaContext, locService);
        var correcto = await caducidadDAO.AgregarAsync(caducidad);
        if (correcto)
            return caducidad;
        else
            return new Caducidad();
    }
}

Método para borrar

Para borrar es similar, regresare un mensaje indicando que la información se borro correctamente. Se regresa un string (StringGraphType) y se recibe como parámetro el id que es del tipo entero (IntGraphType) del registro a borrar.

Método para actualizar

El método actualizar es una combinación de los métodos anteriores para pasar como parámetros el id del registro que deseamos modificar y los datos del registro a modificar.

Configurando GraphQL

Por último lo agregamos a nuestra clase Startup con la función AddMutation

Last updated

Was this helpful?