mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-08-24 20:54:14 +02:00
Create GraphQL project (#1334)
* Create new project for GraphQL * ... * . * ok? * Update src/WireMock.Net.Shared/Extensions/AnyOfExtensions.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * -- * ... --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
co-authored by
Copilot
parent
0d510cdde8
commit
0597a73e0e
@@ -0,0 +1,18 @@
|
||||
// Copyright © WireMock.Net
|
||||
|
||||
using GraphQL.Types;
|
||||
using WireMock.Models.GraphQL;
|
||||
|
||||
namespace WireMock.Models;
|
||||
|
||||
/// <summary>
|
||||
/// Represents a wrapper for schema data, providing access to the associated schema.
|
||||
/// </summary>
|
||||
/// <param name="schema"></param>
|
||||
public class SchemaDataWrapper(ISchema schema) : ISchemaData
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the schema associated with the current instance.
|
||||
/// </summary>
|
||||
public ISchema Schema { get; } = schema;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
// Copyright © WireMock.Net
|
||||
|
||||
using System;
|
||||
using GraphQL.Types;
|
||||
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace WireMock.GraphQL.Models;
|
||||
|
||||
/// <inheritdoc />
|
||||
public abstract class WireMockCustomScalarGraphType<T> : ScalarGraphType
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public override object? ParseValue(object? value)
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case null:
|
||||
return null;
|
||||
|
||||
case T:
|
||||
return value;
|
||||
}
|
||||
|
||||
if (value is string && typeof(T) != typeof(string))
|
||||
{
|
||||
throw new InvalidCastException($"Unable to convert value '{value}' of type '{typeof(string)}' to type '{typeof(T)}'.");
|
||||
}
|
||||
|
||||
return (T)Convert.ChangeType(value, typeof(T));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user