From 4279114543124d42c3d1a5310566fba15f74bf3d Mon Sep 17 00:00:00 2001 From: femsci Date: Mon, 11 Dec 2023 12:00:41 +0100 Subject: [PATCH] iface & doi --- src/Nyanlabs.Pubresolv/Doi.cs | 20 +++++++++++++++++++- src/Nyanlabs.Pubresolv/IResolver.cs | 3 +++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/Nyanlabs.Pubresolv/Doi.cs b/src/Nyanlabs.Pubresolv/Doi.cs index 6fa9566..9fb5f40 100644 --- a/src/Nyanlabs.Pubresolv/Doi.cs +++ b/src/Nyanlabs.Pubresolv/Doi.cs @@ -11,7 +11,14 @@ public readonly struct Doi try { Prefix = short.Parse(match.Groups["prefix"].Value); - Suffix = match.Groups["suffix"].Value; + if (Prefix > 1000 && Prefix < 10000) + { + Suffix = match.Groups["suffix"].Value; + } + else + { + throw new(); + } } catch (Exception) { @@ -19,6 +26,17 @@ public readonly struct Doi } } + public Doi(short prefix, string suffix) + { + if (prefix > 1000 && prefix < 10000) + { + Prefix = prefix; + Suffix = suffix; + return; + } + throw new ArgumentException($"Invalid prefix: {prefix}"); + } + public short Prefix { get; } public string Suffix { get; } diff --git a/src/Nyanlabs.Pubresolv/IResolver.cs b/src/Nyanlabs.Pubresolv/IResolver.cs index 7200099..f91038b 100644 --- a/src/Nyanlabs.Pubresolv/IResolver.cs +++ b/src/Nyanlabs.Pubresolv/IResolver.cs @@ -1,6 +1,9 @@ +using System.Net; + namespace Nyanlabs.Pubresolv; public interface IResolver { public Task Resolve(Doi doi); + public Task Authenticate(ICredentials credentials); }