diff --git a/README.md b/README.md index f94cb49097fab97319d0aa231d22814ead2f211d..039e6bef69812f03f27b7b9e3b87a940a62c4ab1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ # Blob API -This API handles the connection to the data stored in Coscine. +This API handles the connection to the research data stored in Coscine. +Metadata has to have been provided, before storing of research data can proceed. + +Check out the [docs](https://coscine.rwth-aachen.de/coscine/api/Coscine.Api.Blob/swagger). diff --git a/src/Blob/Controllers/BlobController.cs b/src/Blob/Controllers/BlobController.cs index 226a8b9f082d11df5e716be83eab154f5fcb5e6b..d6bcf79441ee99bf5dd829e19df7b08ed14bb40d 100644 --- a/src/Blob/Controllers/BlobController.cs +++ b/src/Blob/Controllers/BlobController.cs @@ -1,4 +1,3 @@ -using Coscine.Api.Blob.Util; using Coscine.ApiCommons; using Coscine.Configuration; using Coscine.Database.DataModel; @@ -36,6 +35,7 @@ namespace Coscine.Api.Blob.Controllers private readonly CoscineLogger _coscineLogger; private readonly AnalyticsLogObject _analyticsLogObject; private readonly RdfStoreConnector _rdfStoreConnector; + private readonly CoscineLDPHelper _coscineLDPHelper; private readonly string _prefix; /// <summary> @@ -54,17 +54,7 @@ namespace Coscine.Api.Blob.Controllers _coscineLogger = new CoscineLogger(logger); _analyticsLogObject = new AnalyticsLogObject(); _prefix = _configuration.GetStringAndWait("coscine/global/epic/prefix"); - } - - /// <summary> - /// Generates Id - /// </summary> - /// <param name="resourceId">Id of the resource</param> - /// <param name="path"> Path to file</param> - /// <returns> Uri </returns> - public Uri GenerateId(string resourceId, string path) - { - return new CustomUri($"https://hdl.handle.net/{_prefix}/{resourceId}@path={Uri.EscapeDataString(path)}"); + _coscineLDPHelper = new CoscineLDPHelper(_rdfStoreConnector, _prefix); } /// <summary> @@ -225,7 +215,7 @@ namespace Coscine.Api.Blob.Controllers return BadRequest("Only one file can be uploaded per request."); } - var id = GenerateId(resourceId, $"/{path}"); + var id = _coscineLDPHelper.GetId(resourceId, $"/{path}", true); if (!_rdfStoreConnector.HasGraph(id)) { return StatusCode((int)HttpStatusCode.Forbidden, diff --git a/src/Blob/Util/CustomUri.cs b/src/Blob/Util/CustomUri.cs deleted file mode 100644 index 1dfec1983a109c920320f1c7d8835daa3ace0666..0000000000000000000000000000000000000000 --- a/src/Blob/Util/CustomUri.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; - -namespace Coscine.Api.Blob.Util -{ - /// <summary> - /// Adapts the returned ToString of a Uri - /// </summary> - public class CustomUri : Uri - { - /// <summary> - /// Constructs a Custom Uri - /// </summary> - /// <param name="uri"></param> - public CustomUri(string uri) : base(uri) - { - - } - - /// <summary> - /// Overwrites the ToString for returning the AbsoluteUri (for dotNetRDF) - /// </summary> - /// <returns></returns> - public override string ToString() - { - return AbsoluteUri; - } - } -}