From dda4054d341d6d7db0fb323735993dd8f14d757d Mon Sep 17 00:00:00 2001 From: glax Date: Thu, 15 Jun 2023 21:15:44 +0200 Subject: [PATCH] API: Fix nullable bug on Getchapters --- Tranga-API/Program.cs | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/Tranga-API/Program.cs b/Tranga-API/Program.cs index d862432..4c16e95 100644 --- a/Tranga-API/Program.cs +++ b/Tranga-API/Program.cs @@ -75,21 +75,26 @@ app.MapGet("/Publications/GetFromConnector", (string connectorName, string title return taskManager.GetPublicationsFromConnector(connector, title); }); -app.MapGet("/Publications/GetChapters", (string connectorName, string internalId, bool onlyNew, bool onlyExisting, string? language) => -{ - Connector? connector = taskManager.GetAvailableConnectors().FirstOrDefault(con => con.Key == connectorName).Value; - if (connector is null) - return Array.Empty(); - Publication? publication = taskManager.GetAllPublications().FirstOrDefault(pub => pub.internalId == internalId); - if (publication is null) - return Array.Empty(); - - if(onlyNew) - return taskManager.GetNewChaptersList(connector, (Publication)publication, language??"en").ToArray(); - else if (onlyExisting) - return taskManager.GetExistingChaptersList(connector, (Publication)publication, language ?? "en").ToArray(); - else - return connector.GetChapters((Publication)publication, language??"en"); +app.MapGet("/Publications/GetChapters", + (string connectorName, string internalId, string? onlyNew, string? onlyExisting, string? language) => + { + string[] yes = { "true", "yes", "1", "y" }; + bool newOnly = onlyNew is not null && yes.Contains(onlyNew); + bool existingOnly = onlyExisting is not null && yes.Contains(onlyExisting); + + Connector? connector = taskManager.GetAvailableConnectors().FirstOrDefault(con => con.Key == connectorName).Value; + if (connector is null) + return Array.Empty(); + Publication? publication = taskManager.GetAllPublications().FirstOrDefault(pub => pub.internalId == internalId); + if (publication is null) + return Array.Empty(); + + if(newOnly) + return taskManager.GetNewChaptersList(connector, (Publication)publication, language??"en").ToArray(); + else if (existingOnly) + return taskManager.GetExistingChaptersList(connector, (Publication)publication, language ?? "en").ToArray(); + else + return connector.GetChapters((Publication)publication, language??"en"); }); app.MapGet("/Tasks/GetTypes", () => Enum.GetNames(typeof(TrangaTask.Task)));