2023-07-03 23:24:35 -04:00
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Linq;
|
2023-07-10 07:35:05 -04:00
|
|
|
using Luski.net.Enums;
|
2023-07-03 23:24:35 -04:00
|
|
|
using Luski.net.Structures.Main;
|
|
|
|
using Luski.net.Structures.Public;
|
|
|
|
|
|
|
|
namespace Luski.net;
|
|
|
|
|
|
|
|
public class API
|
|
|
|
{
|
2023-07-08 09:06:13 -04:00
|
|
|
public MainServer MainServer { get; internal set; }
|
|
|
|
internal List<PublicServer> InternalServers { get; } = new();
|
|
|
|
public IReadOnlyList<PublicServer> LoadedServers => InternalServers.AsReadOnly();
|
2023-07-03 23:24:35 -04:00
|
|
|
|
2023-07-08 09:06:13 -04:00
|
|
|
public PublicServer GetPublicServer(string Domain, string Version = "v1")
|
2023-07-03 23:24:35 -04:00
|
|
|
{
|
2023-07-08 09:06:13 -04:00
|
|
|
IEnumerable<PublicServer> isl = InternalServers.Where(a => (a.Domain == Domain && a.ApiVersion == Version));
|
2023-07-03 23:24:35 -04:00
|
|
|
if (isl.Any()) return isl.First();
|
2023-07-10 14:19:03 -04:00
|
|
|
PublicServer s = new(Domain, Version)
|
2023-07-03 23:24:35 -04:00
|
|
|
{
|
2023-07-10 07:35:05 -04:00
|
|
|
ServerType = ServerType.Public
|
2023-07-03 23:24:35 -04:00
|
|
|
};
|
|
|
|
InternalServers.Add(s);
|
|
|
|
return s;
|
|
|
|
}
|
|
|
|
|
2023-07-08 09:06:13 -04:00
|
|
|
public MainServer GetMainServer(string Domain, string Version = "v1")
|
2023-07-03 23:24:35 -04:00
|
|
|
{
|
2023-07-10 14:19:03 -04:00
|
|
|
MainServer = new(Domain, Version)
|
2023-07-03 23:24:35 -04:00
|
|
|
{
|
2023-07-10 07:35:05 -04:00
|
|
|
ServerType = ServerType.Main
|
2023-07-03 23:24:35 -04:00
|
|
|
};
|
|
|
|
return MainServer;
|
|
|
|
}
|
|
|
|
}
|