supplier
This commit is contained in:
@@ -1,20 +1,19 @@
|
|||||||
// src/Webshop.Api/SwaggerFilters/PaymentMethodExampleOperationFilter.cs
|
// src/Webshop.Api/SwaggerFilters/SupplierExampleOperationFilter.cs
|
||||||
using Microsoft.OpenApi.Models;
|
using Microsoft.OpenApi.Models;
|
||||||
using Swashbuckle.AspNetCore.SwaggerGen;
|
using Swashbuckle.AspNetCore.SwaggerGen;
|
||||||
using Microsoft.OpenApi.Any;
|
using Microsoft.OpenApi.Any;
|
||||||
using Webshop.Domain.Enums;
|
|
||||||
using System.Net.Mime; // Für MediaTypeNames
|
using System.Net.Mime; // Für MediaTypeNames
|
||||||
using System.Collections.Generic; // Für Dictionary
|
using System.Collections.Generic; // Für Dictionary
|
||||||
|
|
||||||
namespace Webshop.Api.SwaggerFilters
|
namespace Webshop.Api.SwaggerFilters
|
||||||
{
|
{
|
||||||
public class PaymentMethodExampleOperationFilter : IOperationFilter
|
public class SupplierExampleOperationFilter : IOperationFilter
|
||||||
{
|
{
|
||||||
public void Apply(OpenApiOperation operation, OperationFilterContext context)
|
public void Apply(OpenApiOperation operation, OperationFilterContext context)
|
||||||
{
|
{
|
||||||
// Überprüfe, ob dies die "CreatePaymentMethod"-Methode im "AdminPaymentMethodsController" ist
|
// Überprüfe, ob dies die "CreateSupplier"-Methode im "AdminSuppliersController" ist
|
||||||
if (context.MethodInfo.DeclaringType == typeof(Controllers.Admin.AdminPaymentMethodsController) &&
|
if (context.MethodInfo.DeclaringType == typeof(Controllers.Admin.AdminSuppliersController) &&
|
||||||
context.MethodInfo.Name == "CreatePaymentMethod")
|
context.MethodInfo.Name == "CreateSupplier")
|
||||||
{
|
{
|
||||||
if (operation.RequestBody == null ||
|
if (operation.RequestBody == null ||
|
||||||
!operation.RequestBody.Content.TryGetValue(MediaTypeNames.Application.Json, out var mediaType))
|
!operation.RequestBody.Content.TryGetValue(MediaTypeNames.Application.Json, out var mediaType))
|
||||||
@@ -28,83 +27,33 @@ namespace Webshop.Api.SwaggerFilters
|
|||||||
}
|
}
|
||||||
mediaType.Examples.Clear();
|
mediaType.Examples.Clear();
|
||||||
|
|
||||||
// Beispiel 1: Banküberweisung
|
// Beispiel 1: Lokaler Lieferant
|
||||||
mediaType.Examples["BankTransfer"] = new OpenApiExample
|
mediaType.Examples["LocalSupplier"] = new OpenApiExample
|
||||||
{
|
{
|
||||||
Summary = "Beispiel: Banküberweisung",
|
Summary = "Beispiel: Lokaler Lieferant",
|
||||||
Value = new OpenApiObject
|
Value = new OpenApiObject
|
||||||
{
|
{
|
||||||
["name"] = new OpenApiString("Banküberweisung (Vorkasse)"),
|
["name"] = new OpenApiString("Lokale Manufaktur GmbH"),
|
||||||
["description"] = new OpenApiString("Bitte überweisen Sie den Betrag auf unser Konto."),
|
["contactPerson"] = new OpenApiString("Hans Meier"),
|
||||||
["isActive"] = new OpenApiBoolean(true),
|
["email"] = new OpenApiString("hans.meier@manufaktur-lokal.de"),
|
||||||
["paymentGatewayType"] = new OpenApiString(PaymentGatewayType.BankTransfer.ToString()),
|
["phoneNumber"] = new OpenApiString("+49 89 1234567"),
|
||||||
// << KORREKTUR: Configuration als OpenApiObject >>
|
["addressId"] = new OpenApiNull(),
|
||||||
["configuration"] = new OpenApiObject
|
["notes"] = new OpenApiString("Handgefertigte Produkte, kurze Lieferzeiten.")
|
||||||
{
|
|
||||||
["IBAN"] = new OpenApiString("DE89370400440532013000"),
|
|
||||||
["BIC"] = new OpenApiString("COBADEFFXXX"),
|
|
||||||
["BankName"] = new OpenApiString("Beispielbank AG")
|
|
||||||
},
|
|
||||||
["processingFee"] = new OpenApiDouble(0)
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Beispiel 2: Stripe
|
// Beispiel 2: Internationaler Großhändler
|
||||||
mediaType.Examples["Stripe"] = new OpenApiExample
|
mediaType.Examples["InternationalSupplier"] = new OpenApiExample
|
||||||
{
|
{
|
||||||
Summary = "Beispiel: Kreditkarte (Stripe)",
|
Summary = "Beispiel: Internationaler Großhändler",
|
||||||
Value = new OpenApiObject
|
Value = new OpenApiObject
|
||||||
{
|
{
|
||||||
["name"] = new OpenApiString("Kreditkarte (via Stripe)"),
|
["name"] = new OpenApiString("Global Imports Inc."),
|
||||||
["description"] = new OpenApiString("Sichere Zahlung mit Ihrer Kreditkarte."),
|
["contactPerson"] = new OpenApiString("John Smith"),
|
||||||
["isActive"] = new OpenApiBoolean(true),
|
["email"] = new OpenApiString("john.smith@global-imports.com"),
|
||||||
["paymentGatewayType"] = new OpenApiString(PaymentGatewayType.Stripe.ToString()),
|
["phoneNumber"] = new OpenApiString("+1 555 987 6543"),
|
||||||
// << KORREKTUR: Configuration als OpenApiObject >>
|
["addressId"] = new OpenApiNull(),
|
||||||
["configuration"] = new OpenApiObject
|
["notes"] = new OpenApiString("Container-Lieferungen, 4-6 Wochen Vorlaufzeit.")
|
||||||
{
|
|
||||||
["PublicKey"] = new OpenApiString("pk_test_YOUR_KEY"),
|
|
||||||
["SecretKey"] = new OpenApiString("sk_test_YOUR_SECRET")
|
|
||||||
},
|
|
||||||
["processingFee"] = new OpenApiDouble(1.5)
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Beispiel 3: PayPal
|
|
||||||
mediaType.Examples["PayPal"] = new OpenApiExample
|
|
||||||
{
|
|
||||||
Summary = "Beispiel: PayPal",
|
|
||||||
Value = new OpenApiObject
|
|
||||||
{
|
|
||||||
["name"] = new OpenApiString("PayPal"),
|
|
||||||
["description"] = new OpenApiString("Zahlen Sie schnell und sicher mit PayPal."),
|
|
||||||
["isActive"] = new OpenApiBoolean(true),
|
|
||||||
["paymentGatewayType"] = new OpenApiString(PaymentGatewayType.PayPal.ToString()),
|
|
||||||
// << KORREKTUR: Configuration als OpenApiObject >>
|
|
||||||
["configuration"] = new OpenApiObject
|
|
||||||
{
|
|
||||||
["ClientId"] = new OpenApiString("YOUR_PAYPAL_CLIENT_ID"),
|
|
||||||
["ClientSecret"] = new OpenApiString("YOUR_PAYPAL_SECRET")
|
|
||||||
},
|
|
||||||
["processingFee"] = new OpenApiDouble(2.5)
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Beispiel 4: Rechnung
|
|
||||||
mediaType.Examples["Invoice"] = new OpenApiExample
|
|
||||||
{
|
|
||||||
Summary = "Beispiel: Kauf auf Rechnung",
|
|
||||||
Value = new OpenApiObject
|
|
||||||
{
|
|
||||||
["name"] = new OpenApiString("Kauf auf Rechnung"),
|
|
||||||
["description"] = new OpenApiString("Nur für registrierte Geschäftskunden."),
|
|
||||||
["isActive"] = new OpenApiBoolean(true),
|
|
||||||
["paymentGatewayType"] = new OpenApiString(PaymentGatewayType.Invoice.ToString()),
|
|
||||||
// << KORREKTUR: Configuration als OpenApiObject (kann auch leer sein) >>
|
|
||||||
["configuration"] = new OpenApiObject
|
|
||||||
{
|
|
||||||
["PaymentTerms"] = new OpenApiString("14 Tage netto")
|
|
||||||
},
|
|
||||||
["processingFee"] = new OpenApiDouble(0)
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user