|
@@ -14,36 +14,9 @@ namespace InABox.API
|
|
{
|
|
{
|
|
public class RestHandler : IHandler
|
|
public class RestHandler : IHandler
|
|
{
|
|
{
|
|
- private readonly List<string> endpoints;
|
|
|
|
- private readonly List<string> operations;
|
|
|
|
-
|
|
|
|
public RestHandler(IHandler parent)
|
|
public RestHandler(IHandler parent)
|
|
{
|
|
{
|
|
Parent = parent;
|
|
Parent = parent;
|
|
-
|
|
|
|
- endpoints = new();
|
|
|
|
- operations = new();
|
|
|
|
-
|
|
|
|
- var types = CoreUtils.TypeList(
|
|
|
|
- x => x.IsSubclassOf(typeof(Entity))
|
|
|
|
- && x.GetInterfaces().Contains(typeof(IRemotable))
|
|
|
|
- );
|
|
|
|
- var DBTypes = DbFactory.SupportedTypes();
|
|
|
|
-
|
|
|
|
- foreach (var t in types)
|
|
|
|
- if (DBTypes.Contains(t.EntityName().Replace(".", "_")))
|
|
|
|
- {
|
|
|
|
- operations.Add(t.EntityName().Replace(".", "_"));
|
|
|
|
-
|
|
|
|
- endpoints.Add(string.Format("List{0}", t.Name));
|
|
|
|
- endpoints.Add(string.Format("Load{0}", t.Name));
|
|
|
|
- endpoints.Add(string.Format("Save{0}", t.Name));
|
|
|
|
- endpoints.Add(string.Format("MultiSave{0}", t.Name));
|
|
|
|
- endpoints.Add(string.Format("Delete{0}", t.Name));
|
|
|
|
- endpoints.Add(string.Format("MultiDelete{0}", t.Name));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- endpoints.Add("QueryMultiple");
|
|
|
|
}
|
|
}
|
|
|
|
|
|
private RequestData GetRequestData(IRequest request)
|
|
private RequestData GetRequestData(IRequest request)
|
|
@@ -90,9 +63,11 @@ namespace InABox.API
|
|
switch (current)
|
|
switch (current)
|
|
{
|
|
{
|
|
case "operations" or "supported_operations":
|
|
case "operations" or "supported_operations":
|
|
- return new ValueTask<IResponse?>(GetSupportedOperations(request).Build());
|
|
|
|
|
|
+ Logger.Send(LogType.Error, "", "Supported operations is no longer supported");
|
|
|
|
+ return new ValueTask<IResponse?>(request.Respond().Status(ResponseStatus.NotFound).Build());
|
|
case "classes" or "supported_classes":
|
|
case "classes" or "supported_classes":
|
|
- return new ValueTask<IResponse?>(GetSupportedClasses(request).Build());
|
|
|
|
|
|
+ Logger.Send(LogType.Error, "", "Supported classes is no longer supported");
|
|
|
|
+ return new ValueTask<IResponse?>(request.Respond().Status(ResponseStatus.NotFound).Build());
|
|
case "version" or "releasenotes" or "release_notes" or "install" or "install_desktop":
|
|
case "version" or "releasenotes" or "release_notes" or "install" or "install_desktop":
|
|
return new ValueTask<IResponse?>(GetUpdateFile(request).Build());
|
|
return new ValueTask<IResponse?>(GetUpdateFile(request).Build());
|
|
case "info":
|
|
case "info":
|
|
@@ -128,32 +103,6 @@ namespace InABox.API
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
|
- /// Returns a JSON list of operation names; used for checking support of operations client side
|
|
|
|
- /// </summary>
|
|
|
|
- /// <param name="request"></param>
|
|
|
|
- /// <returns></returns>
|
|
|
|
- private IResponseBuilder GetSupportedOperations(IRequest request)
|
|
|
|
- {
|
|
|
|
- var serialized = Core.Serialization.Serialize(endpoints, true) ?? "";
|
|
|
|
- return request.Respond()
|
|
|
|
- .Type(new FlexibleContentType(ContentType.ApplicationJson))
|
|
|
|
- .Content(new ResourceContent(Resource.FromString(serialized).Build()));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /// <summary>
|
|
|
|
- /// Returns a JSON list of class names; used for checking support of operations client side
|
|
|
|
- /// </summary>
|
|
|
|
- /// <param name="request"></param>
|
|
|
|
- /// <returns></returns>
|
|
|
|
- private IResponseBuilder GetSupportedClasses(IRequest request)
|
|
|
|
- {
|
|
|
|
- var serialized = Serialization.Serialize(operations) ?? "";
|
|
|
|
- return request.Respond()
|
|
|
|
- .Type(new FlexibleContentType(ContentType.ApplicationJson))
|
|
|
|
- .Content(new ResourceContent(Resource.FromString(serialized).Build()));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
/// Returns the Splash Logo and Color Scheme for this Database
|
|
/// Returns the Splash Logo and Color Scheme for this Database
|
|
/// </summary>
|
|
/// </summary>
|