Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
Loading items

Target

Select target project
  • coscine/backend/apis/metadata
1 result
Select Git revision
Loading items
Show changes
Commits on Source (4)
using Coscine.Action; using Coscine.Action;
using Coscine.Action.EventArgs; using Coscine.Action.EventArgs;
using Coscine.Api.Metadata.ParameterObjects; using Coscine.Api.Metadata.ParameterObjects;
using Coscine.Api.Metadata.Util;
using Coscine.ApiCommons; using Coscine.ApiCommons;
using Coscine.Configuration; using Coscine.Configuration;
using Coscine.Database.Models; using Coscine.Database.Models;
...@@ -19,6 +20,7 @@ using System.Net; ...@@ -19,6 +20,7 @@ using System.Net;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Web; using System.Web;
using VDS.RDF; using VDS.RDF;
using VDS.RDF.Parsing;
using VDS.RDF.Writing; using VDS.RDF.Writing;
namespace Coscine.Api.Metadata.Controllers namespace Coscine.Api.Metadata.Controllers
...@@ -215,6 +217,10 @@ namespace Coscine.Api.Metadata.Controllers ...@@ -215,6 +217,10 @@ namespace Coscine.Api.Metadata.Controllers
return BadRequest("The mime type has to be text/turtle"); return BadRequest("The mime type has to be text/turtle");
} }
var graph = new Graph();
graph.LoadFromString(applicationProfile.Definition, new TurtleParser());
graph.BaseUri = new CustomUri(applicationProfile.BaseURL);
await gitLabClient.Branches.CreateAsync(ApplicationProfileProjectURL, new CreateBranchRequest(newBranchName, "master")); await gitLabClient.Branches.CreateAsync(ApplicationProfileProjectURL, new CreateBranchRequest(newBranchName, "master"));
var folderName = applicationProfile.BaseURL.Replace(ApplicationProfileUrl, ""); var folderName = applicationProfile.BaseURL.Replace(ApplicationProfileUrl, "");
...@@ -223,12 +229,14 @@ namespace Coscine.Api.Metadata.Controllers ...@@ -223,12 +229,14 @@ namespace Coscine.Api.Metadata.Controllers
folderName = folderName[..(folderName.Length - 1)]; folderName = folderName[..(folderName.Length - 1)];
} }
var serialization = StringWriter.Write(graph, new CompressingTurtleWriter());
var actions = new List<CreateCommitRequestAction> var actions = new List<CreateCommitRequestAction>
{ {
new CreateCommitRequestAction( new CreateCommitRequestAction(
new CreateCommitRequestActionType(), new CreateCommitRequestActionType(),
$"profiles/{folderName}/index.ttl") { $"profiles/{folderName}/index.ttl") {
Content = applicationProfile.Definition Content = serialization
} }
}; };
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<AssemblyName>Coscine.Api.Metadata</AssemblyName> <AssemblyName>Coscine.Api.Metadata</AssemblyName>
<GenerateDocumentationFile>true</GenerateDocumentationFile> <GenerateDocumentationFile>true</GenerateDocumentationFile>
<TargetFramework>net5.0</TargetFramework> <TargetFramework>net5.0</TargetFramework>
<Version>3.0.0</Version> <Version>3.0.1</Version>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<Authors>RWTH Aachen University</Authors> <Authors>RWTH Aachen University</Authors>
......
using System;
namespace Coscine.Api.Metadata.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;
}
}
}
\ No newline at end of file