Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Open Subsurface Data Universe Software
Platform
Security and Compliance
Entitlements
Commits
18a50099
Commit
18a50099
authored
Aug 18, 2021
by
Rostislav Vatolin [SLB]
Committed by
ethiraj krishnamanaidu
Aug 18, 2021
Browse files
Fix Delete API in swagger
parent
f7233fab
Changes
4
Hide whitespace changes
Inline
Side-by-side
entitlements-v2-core/src/main/java/org/opengroup/osdu/entitlements/v2/api/DeleteGroupApi.java
View file @
18a50099
package
org.opengroup.osdu.entitlements.v2.api
;
import
lombok.RequiredArgsConstructor
;
import
org.opengroup.osdu.core.common.model.http.RequestInfo
;
import
org.opengroup.osdu.entitlements.v2.AppProperties
;
import
org.opengroup.osdu.entitlements.v2.model.EntityNode
;
import
org.opengroup.osdu.entitlements.v2.model.deletegroup.DeleteGroupDto
;
import
org.opengroup.osdu.entitlements.v2.model.deletegroup.DeleteGroupServiceDto
;
import
org.opengroup.osdu.entitlements.v2.service.DeleteGroupService
;
import
org.opengroup.osdu.entitlements.v2.util.RequestInfoUtilService
;
...
...
@@ -14,17 +12,12 @@ import org.opengroup.osdu.entitlements.v2.validation.PartitionHeaderValidationSe
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.validation.Valid
;
@RestController
@RequiredArgsConstructor
@Validated
public
class
DeleteGroupApi
{
private
final
DeleteGroupService
deleteService
;
...
...
@@ -34,12 +27,12 @@ public class DeleteGroupApi {
@DeleteMapping
(
"/groups/{group_email}"
)
@PreAuthorize
(
"@authorizationFilter.hasAnyPermission('"
+
AppProperties
.
OPS
+
"', '"
+
AppProperties
.
ADMIN
+
"')"
)
public
ResponseEntity
<
Void
>
deleteGroup
(
@Valid
@PathVariable
(
"group_email"
)
DeleteGroupDto
groupInfoDto
)
{
public
ResponseEntity
<
Void
>
deleteGroup
(
@PathVariable
(
"group_email"
)
String
groupEmail
)
{
String
partitionId
=
requestInfo
.
getHeaders
().
getPartitionId
();
partitionHeaderValidationService
.
validateSinglePartitionProvided
(
partitionId
);
String
partitionDomain
=
requestInfoUtilService
.
getDomain
(
partitionId
);
ApiInputValidation
.
validateEmailAndBelongsToPartition
(
group
InfoDto
.
getGroup
Email
()
,
partitionDomain
);
EntityNode
groupNode
=
DeleteGroupDto
.
deleteGroupNode
(
groupInfoDto
,
partitionId
);
ApiInputValidation
.
validateEmailAndBelongsToPartition
(
groupEmail
,
partitionDomain
);
EntityNode
groupNode
=
EntityNode
.
createNodeFromGroupEmail
(
groupEmail
);
DeleteGroupServiceDto
deleteGroupServiceDto
=
DeleteGroupServiceDto
.
builder
()
.
requesterId
(
requestInfoUtilService
.
getUserId
(
requestInfo
.
getHeaders
()))
.
partitionId
(
requestInfo
.
getHeaders
().
getPartitionId
())
...
...
entitlements-v2-core/src/main/java/org/opengroup/osdu/entitlements/v2/model/deletegroup/DeleteGroupDto.java
deleted
100644 → 0
View file @
f7233fab
package
org.opengroup.osdu.entitlements.v2.model.deletegroup
;
import
org.opengroup.osdu.entitlements.v2.model.EntityNode
;
import
org.opengroup.osdu.entitlements.v2.model.NodeType
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Generated
;
import
lombok.NoArgsConstructor
;
@Data
@Generated
@NoArgsConstructor
@AllArgsConstructor
public
class
DeleteGroupDto
{
private
String
groupEmail
;
public
static
EntityNode
deleteGroupNode
(
DeleteGroupDto
dto
,
String
partitionId
)
{
return
EntityNode
.
builder
()
.
name
(
dto
.
groupEmail
.
split
(
"@"
)[
0
])
.
nodeId
(
dto
.
groupEmail
.
toLowerCase
())
.
type
(
NodeType
.
GROUP
)
.
dataPartitionId
(
partitionId
)
.
build
();
}
}
entitlements-v2-core/src/test/java/org/opengroup/osdu/entitlements/v2/api/DeleteGroupApiTest
s
.java
→
entitlements-v2-core/src/test/java/org/opengroup/osdu/entitlements/v2/api/DeleteGroupApiTest.java
View file @
18a50099
package
org.opengroup.osdu.entitlements.v2.api
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
...
...
@@ -11,6 +10,7 @@ import org.opengroup.osdu.core.common.model.tenant.TenantInfo;
import
org.opengroup.osdu.core.common.provider.interfaces.ITenantFactory
;
import
org.opengroup.osdu.entitlements.v2.auth.AuthorizationService
;
import
org.opengroup.osdu.entitlements.v2.model.EntityNode
;
import
org.opengroup.osdu.entitlements.v2.model.NodeType
;
import
org.opengroup.osdu.entitlements.v2.model.deletegroup.DeleteGroupServiceDto
;
import
org.opengroup.osdu.entitlements.v2.service.DeleteGroupService
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -24,7 +24,6 @@ import org.springframework.test.web.servlet.ResultActions;
import
static
org
.
assertj
.
core
.
api
.
AssertionsForClassTypes
.
assertThat
;
import
static
org
.
mockito
.
ArgumentMatchers
.
any
;
import
static
org
.
mockito
.
Mockito
.
times
;
import
static
org
.
mockito
.
Mockito
.
verify
;
import
static
org
.
mockito
.
Mockito
.
when
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
request
.
MockMvcRequestBuilders
.
delete
;
...
...
@@ -34,7 +33,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
@RunWith
(
SpringRunner
.
class
)
@WebMvcTest
(
controllers
=
DeleteGroupApi
.
class
)
@ComponentScan
(
"org.opengroup.osdu.entitlements.v2"
)
public
class
DeleteGroupApiTest
s
{
public
class
DeleteGroupApiTest
{
@Autowired
private
MockMvc
mockMvc
;
...
...
@@ -68,16 +67,22 @@ public class DeleteGroupApiTests {
performDeleteGroupRequest
(
groupId
).
andExpect
(
status
().
isBadRequest
());
}
@Test
public
void
shouldCallService
()
throws
Exception
{
ArgumentCaptor
<
EntityNode
>
c
aptor
1
=
ArgumentCaptor
.
forClass
(
EntityNode
.
class
);
ArgumentCaptor
<
DeleteGroupServiceDto
>
c
aptor
2
=
ArgumentCaptor
.
forClass
(
DeleteGroupServiceDto
.
class
);
ArgumentCaptor
<
EntityNode
>
entityNodeArgumentC
aptor
=
ArgumentCaptor
.
forClass
(
EntityNode
.
class
);
ArgumentCaptor
<
DeleteGroupServiceDto
>
dgsDtoArgumentC
aptor
=
ArgumentCaptor
.
forClass
(
DeleteGroupServiceDto
.
class
);
String
groupId
=
"service.VIEWERS@common.contoso.com"
;
performDeleteGroupRequest
(
groupId
).
andExpect
(
status
().
isNoContent
());
verify
(
service
,
times
(
1
)).
run
(
captor1
.
capture
(),
captor2
.
capture
());
assertThat
(
captor1
.
getValue
().
getNodeId
()).
isEqualTo
(
"service.viewers@common.contoso.com"
);
verify
(
service
).
run
(
entityNodeArgumentCaptor
.
capture
(),
dgsDtoArgumentCaptor
.
capture
());
EntityNode
actualEntityNode
=
entityNodeArgumentCaptor
.
getValue
();
assertThat
(
actualEntityNode
.
getNodeId
()).
isEqualTo
(
"service.viewers@common.contoso.com"
);
assertThat
(
actualEntityNode
.
getName
()).
isEqualTo
(
"service.viewers"
);
assertThat
(
actualEntityNode
.
getDataPartitionId
()).
isEqualTo
(
"common"
);
assertThat
(
actualEntityNode
.
getType
()).
isEqualTo
(
NodeType
.
GROUP
);
DeleteGroupServiceDto
deleteGroupServiceDto
=
dgsDtoArgumentCaptor
.
getValue
();
assertThat
(
deleteGroupServiceDto
.
getRequesterId
()).
isEqualTo
(
"a@b.com"
);
assertThat
(
deleteGroupServiceDto
.
getPartitionId
()).
isEqualTo
(
"common"
);
}
private
ResultActions
performDeleteGroupRequest
(
String
groupEmail
)
throws
Exception
{
...
...
entitlements-v2-core/src/test/java/org/opengroup/osdu/entitlements/v2/model/deletegroup/DeleteGroupDtoTests.java
deleted
100644 → 0
View file @
f7233fab
package
org.opengroup.osdu.entitlements.v2.model.deletegroup
;
import
org.opengroup.osdu.entitlements.v2.model.EntityNode
;
import
org.junit.Test
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
public
class
DeleteGroupDtoTests
{
@Test
public
void
should_convertAllParameters_andAddId_andName
(){
DeleteGroupDto
sut
=
new
DeleteGroupDto
(
"name@dp.domain.com"
);
EntityNode
result
=
DeleteGroupDto
.
deleteGroupNode
(
sut
,
"dp"
);
assertThat
(
result
.
getNodeId
()).
isEqualTo
(
"name@dp.domain.com"
);
assertThat
(
result
.
getName
()).
isEqualTo
(
"name"
);
}
}
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