From 3802a6f8fa0b78d3ce80224f09f8f6ce700e22e7 Mon Sep 17 00:00:00 2001 From: estrogen elf <87099578+BlossomiShymae@users.noreply.github.com> Date: Mon, 16 Jun 2025 17:28:20 -0500 Subject: [PATCH] fix: schema type bugs --- Needlework.Net/Helpers/OpenApiHelpers.cs | 3 ++- Needlework.Net/Services/DocumentService.cs | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Needlework.Net/Helpers/OpenApiHelpers.cs b/Needlework.Net/Helpers/OpenApiHelpers.cs index e30121e..00d4a8c 100644 --- a/Needlework.Net/Helpers/OpenApiHelpers.cs +++ b/Needlework.Net/Helpers/OpenApiHelpers.cs @@ -30,7 +30,8 @@ namespace Needlework.Net.Helpers if (schema.Reference != null) return schema.Reference.Id; if (schema.Type == "object" && schema.AdditionalProperties?.Reference != null) return schema.AdditionalProperties.Reference.Id; if (schema.Type == "integer" || schema.Type == "number") return $"{schema.Type}:{schema.Format}"; - if (schema.Type == "array" && schema.AdditionalProperties?.Reference != null) return schema.AdditionalProperties.Reference.Id; + if (schema.Type == "array" && schema.AdditionalProperties?.Reference != null) return $"{schema.AdditionalProperties.Reference.Id}[]"; + if (schema.Type == "array" && schema.AdditionalProperties?.Type != null) return $"{schema.AdditionalProperties.Type}[]"; if (schema.Type == "array" && schema.Items.Reference != null) return $"{schema.Items.Reference.Id}[]"; if (schema.Type == "array" && (schema.Items.Type == "integer" || schema.Items.Type == "number")) return $"{schema.Items.Type}:{schema.Items.Format}[]"; if (schema.Type == "array") return $"{schema.Items.Type}[]"; diff --git a/Needlework.Net/Services/DocumentService.cs b/Needlework.Net/Services/DocumentService.cs index d3522b8..6e364b6 100644 --- a/Needlework.Net/Services/DocumentService.cs +++ b/Needlework.Net/Services/DocumentService.cs @@ -30,7 +30,12 @@ namespace Needlework.Net var lcuSchemaStream = await _githubUserContentClient.Request("/dysolix/hasagi-types/main/swagger.json") .GetStreamAsync(cancellationToken: cancellationToken); - var lcuSchemaRaw = _reader.Read(lcuSchemaStream, out var _); + var lcuSchemaRaw = _reader.Read(lcuSchemaStream, out var diagnostic); + foreach (var error in diagnostic.Errors) + { + this.Log() + .Warning("Diagnostic error: {Message}", error); + } var document = new Document(lcuSchemaRaw); return cached.Save(document, TimeSpan.FromMinutes(60)); @@ -45,7 +50,12 @@ namespace Needlework.Net var lolClientStream = await _githubUserContentClient.Request("/AlsoSylv/Irelia/refs/heads/master/schemas/game_schema.json") .GetStreamAsync(cancellationToken: cancellationToken); - var lolClientRaw = _reader.Read(lolClientStream, out var _); + var lolClientRaw = _reader.Read(lolClientStream, out var diagnostic); + foreach (var error in diagnostic.Errors) + { + this.Log() + .Warning("Diagnostic error: {Message}", error); + } var document = new Document(lolClientRaw); return cached.Save(document, TimeSpan.FromMinutes(60));