Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Coscine
backend
apis
Project
Commits
5fe6f155
Commit
5fe6f155
authored
Feb 03, 2020
by
Benedikt Heinrichs
Browse files
Fix: Graphs with special characters now work (coscine/issues#626)
parent
9c7c9a56
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
src/Project/Controllers/MetadataController.cs
View file @
5fe6f155
...
...
@@ -112,7 +112,8 @@ namespace Coscine.Api.Project.Controllers
if
(
_resourceModel
.
HasAccess
(
user
,
resource
,
UserRoles
.
Owner
,
UserRoles
.
Member
))
{
var
id
=
_metadataModel
.
GenerateId
(
resourceId
,
filename
,
version
);
var
graph
=
_util
.
GetGraph
(
id
);
var
uri
=
_metadataModel
.
CreateUri
(
id
);
var
graph
=
_util
.
GetGraph
(
uri
);
return
Json
(
JToken
.
Parse
(
VDS
.
RDF
.
Writing
.
StringWriter
.
Write
(
graph
,
new
RdfJsonWriter
())).
ToString
());
}
else
...
...
@@ -126,7 +127,7 @@ namespace Coscine.Api.Project.Controllers
{
var
innerBlock
=
ObjectFactory
<
JToken
>.
DeserializeFromStream
(
Request
.
Body
);
var
graphName
=
_metadataModel
.
GenerateId
(
resourceId
,
filename
,
version
);
var
graphNameUri
=
new
Uri
(
graphName
);
var
graphNameUri
=
_metadataModel
.
Create
Uri
(
graphName
);
var
json
=
new
JObject
{
[
graphName
]
=
innerBlock
...
...
src/Project/Models/MetadataModel.cs
View file @
5fe6f155
...
...
@@ -5,6 +5,7 @@ using LinqToDB;
using
System
;
using
System.Linq
;
using
System.Linq.Expressions
;
using
System.Web
;
namespace
Coscine.Api.Project.Models
{
...
...
@@ -50,7 +51,15 @@ namespace Coscine.Api.Project.Models
public
string
GenerateId
(
string
resourceId
,
string
filename
,
string
version
)
{
return
$"https://purl.org/coscine/md/
{
resourceId
}
/
{
filename
}
/
{
version
}
/"
;
// Double UrlEncode since converting it to Uri executes one UrlDecode and Virtuoso
// graph names don't support special characters
var
encodedFileName
=
HttpUtility
.
UrlEncode
(
HttpUtility
.
UrlEncode
(
filename
));
return
$"https://purl.org/coscine/md/
{
resourceId
}
/
{
encodedFileName
}
/
{
version
}
/"
;
}
public
Uri
CreateUri
(
string
graphName
)
{
return
new
Uri
(
graphName
);
}
}
}
CoscineBot
⚙
@CoscineBot
mentioned in commit
b398e03d
·
Feb 05, 2020
mentioned in commit
b398e03d
mentioned in commit b398e03d36ddd75dbf7717643bd70ebdf8bb60cf
Toggle commit list
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment