Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Genesys PGR
Genesys Backend
Commits
cf9c063a
Commit
cf9c063a
authored
Mar 24, 2022
by
Matija Obreza
Browse files
Networks: Update PGRFA network with AccessionFilter
parent
211adb58
Changes
6
Hide whitespace changes
Inline
Side-by-side
src/main/java/org/genesys2/server/api/v0/OrganizationController.java
View file @
cf9c063a
...
...
@@ -95,7 +95,7 @@ public class OrganizationController extends ApiBaseController {
if
(
network
==
null
)
{
network
=
networkService
.
create
(
organizationJson
.
getSlug
(),
organizationJson
.
getTitle
());
}
return
networkService
.
update
(
network
.
getId
(),
network
.
getSlug
(),
organizationJson
.
getTitle
());
return
networkService
.
update
(
network
.
getId
(),
network
.
getSlug
(),
organizationJson
.
getTitle
()
,
organizationJson
.
getAccessionFilter
()
);
}
/**
...
...
src/main/java/org/genesys2/server/api/v1/NetworkController.java
View file @
cf9c063a
...
...
@@ -91,7 +91,7 @@ public class NetworkController extends ApiBaseController {
if
(!
network
.
getId
().
equals
(
organizationJson
.
getId
()))
{
throw
new
InvalidApiUsageException
(
"Cannot overwrite existing record"
);
}
return
networkService
.
update
(
network
.
getId
(),
network
.
getSlug
(),
organizationJson
.
getTitle
());
return
networkService
.
update
(
network
.
getId
(),
network
.
getSlug
(),
organizationJson
.
getTitle
()
,
organizationJson
.
getAccessionFilter
()
);
}
/**
...
...
src/main/java/org/genesys2/server/service/PGRFANetworkService.java
View file @
cf9c063a
...
...
@@ -40,7 +40,7 @@ public interface PGRFANetworkService {
Article
updateAbout
(
@Valid
PGRFANetwork
network
,
String
body
,
String
summary
,
Locale
locale
)
throws
CRMException
;
PGRFANetwork
update
(
long
id
,
String
newSlug
,
String
title
);
PGRFANetwork
update
(
long
id
,
String
newSlug
,
String
title
,
String
accessionFilter
);
PGRFANetwork
update
(
@Valid
PGRFANetwork
network
);
...
...
src/main/java/org/genesys2/server/service/impl/PGRFANetworkServiceImpl.java
View file @
cf9c063a
...
...
@@ -24,6 +24,8 @@ import java.util.Map;
import
java.util.Set
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
org.apache.commons.lang3.StringUtils
;
import
org.genesys2.server.exception.InvalidApiUsageException
;
import
org.genesys2.server.exception.NotFoundElement
;
import
org.genesys2.server.model.genesys.Accession
;
...
...
@@ -113,11 +115,12 @@ public class PGRFANetworkServiceImpl implements PGRFANetworkService {
@Override
@PreAuthorize
(
"hasRole('ADMINISTRATOR')"
)
@Transactional
(
readOnly
=
false
)
public
PGRFANetwork
update
(
long
id
,
String
newSlug
,
String
title
)
{
public
PGRFANetwork
update
(
long
id
,
String
newSlug
,
String
title
,
String
accessionFilter
)
{
final
PGRFANetwork
network
=
new
PGRFANetwork
();
network
.
setId
(
id
);
network
.
setSlug
(
newSlug
);
network
.
setTitle
(
title
);
network
.
setAccessionFilter
(
accessionFilter
);
return
update
(
network
);
}
...
...
@@ -132,6 +135,7 @@ public class PGRFANetworkServiceImpl implements PGRFANetworkService {
toUpdate
.
setSlug
(
network
.
getSlug
());
toUpdate
.
setTitle
(
network
.
getTitle
());
toUpdate
.
setAccessionFilter
(
network
.
getAccessionFilter
());
return
lazyLoad
(
networkRepository
.
save
(
toUpdate
));
}
...
...
@@ -163,12 +167,16 @@ public class PGRFANetworkServiceImpl implements PGRFANetworkService {
public
Map
<
String
,
ElasticsearchService
.
TermResult
>
overview
(
String
slug
)
throws
SearchException
{
var
network
=
networkRepository
.
findBySlug
(
slug
);
var
accessionFilter
=
new
AccessionFilter
();
try
{
accessionFilter
=
AccessionFilter
.
fromJson
(
network
.
getAccessionFilter
());
}
catch
(
JsonProcessingException
e
)
{
LOG
.
error
(
"Exception in parsing json filter: {}"
,
network
.
getAccessionFilter
(),
e
);
if
(
StringUtils
.
isNotBlank
(
network
.
getAccessionFilter
()))
{
try
{
accessionFilter
=
AccessionFilter
.
fromJson
(
network
.
getAccessionFilter
());
}
catch
(
JsonProcessingException
e
)
{
LOG
.
error
(
"Exception in parsing JSON filter: {}"
,
network
.
getAccessionFilter
());
//, e);
}
}
accessionFilter
.
historic
=
false
;
// Force active accessions
accessionFilter
.
networks
=
Sets
.
newHashSet
(
slug
);
if
(
elasticsearchService
!=
null
)
{
...
...
src/test/java/org/genesys/test/server/api/v1/NetworkControllerTest.java
View file @
cf9c063a
...
...
@@ -136,6 +136,23 @@ public class NetworkControllerTest extends AbstractNetworkControllerTest {
/*@formatter:on*/
assertEquals
(
2
,
organizationRepository
.
findAll
().
size
());
organization1
.
setAccessionFilter
(
"{\"genus\": [ \"Cocos\" ]}"
);
/*@formatter:off*/
mockMvc
.
perform
(
post
(
NetworkController
.
CONTROLLER_URL
)
.
content
(
verboseMapper
.
writeValueAsString
(
organization1
))
.
contentType
(
MediaType
.
APPLICATION_JSON_VALUE
)
)
// .andDo(org.springframework.test.web.servlet.result.MockMvcResultHandlers.print())
.
andExpect
(
status
().
isOk
())
.
andExpect
(
content
().
contentType
(
MediaType
.
APPLICATION_JSON_VALUE
))
.
andExpect
(
jsonPath
(
"$"
,
notNullValue
()))
.
andExpect
(
jsonPath
(
"$.slug"
,
is
(
SLUG_1
)))
.
andExpect
(
jsonPath
(
"$.title"
,
is
(
newTitle
)))
.
andExpect
(
jsonPath
(
"$.accessionFilter"
,
is
(
"{\"genus\": [ \"Cocos\" ]}"
)))
;
/*@formatter:on*/
}
@Test
...
...
src/test/java/org/genesys/test/server/services/PGRFANetworkServiceTest.java
View file @
cf9c063a
...
...
@@ -68,11 +68,15 @@ public class PGRFANetworkServiceTest extends AbstractServicesTest {
PGRFANetwork
toUpdate
=
setupOrganization
(
SLUG_1
,
TITLE_1
);
final
String
newTitle
=
"NEW_TITLE"
;
networkService
.
update
(
toUpdate
.
getId
(),
SLUG_1
,
newTitle
);
networkService
.
update
(
toUpdate
.
getId
(),
SLUG_1
,
newTitle
,
null
);
PGRFANetwork
updated
=
networkService
.
getNetwork
(
SLUG_1
);
assertEquals
(
updated
.
getId
(),
toUpdate
.
getId
());
assertEquals
(
updated
.
getTitle
(),
newTitle
);
updated
.
setAccessionFilter
(
"{}"
);
var
updated2
=
networkService
.
update
(
updated
.
getId
(),
SLUG_1
,
newTitle
+
2
,
updated
.
getAccessionFilter
());
assertEquals
(
updated2
.
getAccessionFilter
(),
updated
.
getAccessionFilter
());
}
@Test
(
expected
=
ConstraintViolationException
.
class
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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