Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Helmholtz Cloud Portal
Cerebrum
Commits
50dba086
Commit
50dba086
authored
Feb 20, 2021
by
femiadeyemi
Browse files
add API for updating relationship between service and org
parent
91b93b70
Pipeline
#59822
passed with stages
in 9 minutes and 40 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
src/main/java/de/helmholtz/marketplace/cerebrum/controller/MarketServiceController.java
View file @
50dba086
...
...
@@ -192,6 +192,15 @@ public class MarketServiceController
return
marketServiceService
.
addProvider
(
provider
);
}
@PreAuthorize
(
"isAuthenticated()"
)
@Operation
(
security
=
@SecurityRequirement
(
name
=
"hdf-aai"
))
@PutMapping
(
path
=
"/providers"
,
consumes
=
MediaType
.
APPLICATION_JSON_VALUE
)
public
ResponseEntity
<
MarketService
>
updateProvider
(
@Valid
@RequestBody
ServiceProvider
provider
)
{
return
marketServiceService
.
updateProvider
(
provider
);
}
@PreAuthorize
(
"isAuthenticated()"
)
@Operation
(
security
=
@SecurityRequirement
(
name
=
"hdf-aai"
))
@DeleteMapping
(
path
=
"/affiliations"
)
...
...
src/main/java/de/helmholtz/marketplace/cerebrum/repository/MarketServiceRepository.java
View file @
50dba086
...
...
@@ -32,6 +32,15 @@ public interface MarketServiceRepository extends Neo4jRepository<MarketService,
@Param
(
"orgUuid"
)
String
orgUuid
,
@Param
(
"roles"
)
String
[]
roles
);
@SuppressWarnings
(
"UnusedReturnValue"
)
@Query
(
"MATCH (service:MarketService)-[r:HOSTED_BY]->(org:Organization) "
+
"WHERE service.uuid = $serviceUuid AND org.uuid = $orgUuid "
+
"SET r.serviceTechnicalName = $softwareName "
+
"RETURN service"
)
MarketService
updateServiceProviderRelationship
(
@Param
(
"serviceUuid"
)
String
serviceUuid
,
@Param
(
"orgUuid"
)
String
orgUuid
,
@Param
(
"softwareName"
)
String
serviceTechnicalName
);
@SuppressWarnings
(
"UnusedReturnValue"
)
@Query
(
"MATCH (service:MarketService)-[r:HOSTED_BY]->(org:Organization) "
+
"WHERE service.uuid = $serviceUuid AND org.uuid = $orgUuid "
+
...
...
src/main/java/de/helmholtz/marketplace/cerebrum/service/MarketServiceService.java
View file @
50dba086
...
...
@@ -103,6 +103,31 @@ public class MarketServiceService extends CerebrumServiceBase<MarketService, Mar
}
}
public
ResponseEntity
<
MarketService
>
updateProvider
(
ServiceProvider
serviceProvider
)
{
MarketService
serviceNode
=
serviceProvider
.
getMarketService
();
Organization
organizationNode
=
serviceProvider
.
getOrganization
();
if
(
serviceNode
.
getUuid
()
!=
null
&&
organizationNode
.
getUuid
()
!=
null
)
{
MarketService
service
=
getServiceByAttributes
(
"uuid"
,
serviceNode
.
getUuid
());
if
(
service
.
getServiceProviders
()
==
null
)
{
return
addProvider
(
serviceProvider
);
}
for
(
ServiceProvider
provider
:
service
.
getServiceProviders
())
{
if
(
provider
.
getOrganization
().
getAbbreviation
()
.
equals
(
organizationNode
.
getAbbreviation
()))
{
MarketService
updatedRelationship
=
marketServiceRepository
.
updateServiceProviderRelationship
(
service
.
getUuid
(),
provider
.
getOrganization
().
getUuid
(),
serviceProvider
.
getServiceTechnicalName
());
return
ResponseEntity
.
ok
().
body
(
updatedRelationship
);
}
}
}
return
addProvider
(
serviceProvider
);
}
public
ResponseEntity
<
MarketService
>
deleteProviders
(
String
serviceKey
,
String
serviceValue
,
String
organizationKey
,
String
organizationValue
)
{
...
...
Write
Preview
Supports
Markdown
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