Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(value): make impossible to set list root node as a value (DEV-973) #2088
fix(value): make impossible to set list root node as a value (DEV-973) #2088
Changes from 6 commits
d1c775b
29998c3
8455366
748feb1
5953676
6176715
eeafd44
eae72df
4b16ae0
35eac06
b74ee41
58b4551
d14daa9
db58026
fb35176
388f4a8
0ce84d9
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Take a look at this: https://github.com/dasch-swiss/dsp-api/blob/main/webapi/src/main/twirl/org/knora/webapi/messages/twirl/queries/sparql/admin/checkListRootNodeExistsByIri.scala.txt
What you should do is write an
ASK
query that will returntrue
orfalse
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is only one but. With one query for both checks, I can only return one error, this shouldn't be a problem but it's less information for the user.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The naming is a bit misleading.
checkIfNodeIsRoot
implies that it is going to betrue
when it is a root node. In this case, you get an exception if it is a root node, i.e., afalse
. Also, what happens if the node is not a node at all, i.e., it does not exist in the database?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also, doing two queries just to check if a node exists and is not a root node is a bit inefficient. You should try to make only one query (a
SPARQL ASK
), that will returntrue
in the case that it is an existing child node, and afalse
in the case that it is not existing or a root node.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How this name is misleading? It says what it does = checks if the list node is root. To make it more precise it might be adjusted to
checkIfNodeIsRootAndThrowsErrorIfNot
, but IMO this is not really necessary here.On the other comment you're right, this two queries are not optimal solution. I was actually thinking to use the one I created - which uses inside
getListNode
. At the end it gets the node, so if it isn't in the database should also return that information. But it seems it isn't that straighfroward, because it's checked somewhere else and this is thrown: