Skip to content

Commit 0de3877

Browse files
authored
Changed using of VulnerabilityDto to VulnerabilityMetadataDto (#2820)
### What's done: - changed using of `VulnerabilityDto` to `VulnerabilityMetadataDto`. - deleted class `VulnerabilityDto`. Closes #2819
1 parent 47882bf commit 0de3877

8 files changed

Lines changed: 14 additions & 128 deletions

File tree

save-backend/src/main/kotlin/com/saveourtool/save/backend/controllers/vulnerability/VulnerabilityController.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ class VulnerabilityController(
103103
@ApiResponse(responseCode = "200", description = "Successfully fetched vulnerability by identifier")
104104
fun getVulnerabilityByIdentifierAndActive(
105105
@RequestParam identifier: String,
106-
): Mono<VulnerabilityDto> = blockingToMono { vulnerabilityService.findByName(identifier) }
106+
): Mono<VulnerabilityMetadataDto> = blockingToMono { vulnerabilityService.findByName(identifier) }
107107
.switchIfEmptyToNotFound()
108108

109109
@GetMapping("/by-identifier-with-description")

save-backend/src/main/kotlin/com/saveourtool/save/backend/security/VulnerabilityPermissionEvaluator.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.saveourtool.save.backend.security
33
import com.saveourtool.save.backend.service.vulnerability.VulnerabilityService
44
import com.saveourtool.save.backend.utils.hasRole
55
import com.saveourtool.save.domain.Role
6-
import com.saveourtool.save.entities.vulnerability.VulnerabilityDto
6+
import com.saveourtool.save.entities.cosv.VulnerabilityMetadataDto
77
import com.saveourtool.save.entities.vulnerability.VulnerabilityStatus
88

99
import com.saveourtool.save.permission.Permission
@@ -49,8 +49,8 @@ class VulnerabilityPermissionEvaluator(
4949
* @param authentication
5050
* @return check permission
5151
*/
52-
fun hasFullPermission(vulnerability: VulnerabilityDto, authentication: Authentication): Boolean {
52+
fun hasFullPermission(vulnerability: VulnerabilityMetadataDto, authentication: Authentication): Boolean {
5353
val linkUsers = vulnerabilityService.getUsers(vulnerability.identifier).map { it.name }
54-
return vulnerability.userInfo.name == authentication.name || authentication.name in linkUsers
54+
return vulnerability.user.name == authentication.name || authentication.name in linkUsers
5555
}
5656
}

save-backend/src/main/kotlin/com/saveourtool/save/backend/service/vulnerability/VulnerabilityService.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class VulnerabilityService(
5757
* @param name name of vulnerability
5858
* @return vulnerability by name
5959
*/
60-
fun findByName(name: String) = vulnerabilityMetadataRepository.findByIdentifier(name)?.toDto()?.toVulnerabilityDto()
60+
fun findByName(name: String) = vulnerabilityMetadataRepository.findByIdentifier(name)?.toDto()
6161

6262
/**
6363
* @param userName
@@ -293,7 +293,7 @@ class VulnerabilityService(
293293

294294
/**
295295
* @param vulnerabilityProjectDtos dto list of vulnerability projects
296-
* @return [VulnerabilityDto] with saved [vulnerabilityProjectDtos]
296+
* @return list of [VulnerabilityProjectDto]
297297
*/
298298
@Transactional
299299
fun saveAllProjects(

save-cloud-common/src/commonMain/kotlin/com/saveourtool/save/entities/cosv/VulnerabilityExt.kt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.saveourtool.save.entities.cosv
22

33
import com.saveourtool.save.info.UserInfo
4-
import com.saveourtool.save.utils.getRelatedLink
54

65
import com.saveourtool.osv4k.RawOsvSchema as RawCosvSchema
76

@@ -18,14 +17,6 @@ data class VulnerabilityExt(
1817
val cosv: RawCosvSchema,
1918
val saveContributors: List<UserInfo>,
2019
) {
21-
/**
22-
* @return a vulnerability dto with description
23-
*/
24-
fun toVulnerabilityDtoWithDescription() = metadataDto.toVulnerabilityDto().copy(
25-
description = metadataDto.details,
26-
relatedLink = cosv.getRelatedLink(),
27-
)
28-
2920
/**
3021
* @return contributors + owner (creator)
3122
*/

save-cloud-common/src/commonMain/kotlin/com/saveourtool/save/entities/cosv/VulnerabilityMetadataDto.kt

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.saveourtool.save.entities.cosv
22

33
import com.saveourtool.save.entities.OrganizationDto
4-
import com.saveourtool.save.entities.vulnerability.VulnerabilityDto
54
import com.saveourtool.save.entities.vulnerability.VulnerabilityLanguage
65
import com.saveourtool.save.entities.vulnerability.VulnerabilityStatus
76
import com.saveourtool.save.info.UserInfo
@@ -35,26 +34,6 @@ data class VulnerabilityMetadataDto(
3534
val status: VulnerabilityStatus,
3635
val tags: Set<String> = emptySet(),
3736
) {
38-
/**
39-
* @return a vulnerability dto
40-
*/
41-
fun toVulnerabilityDto() = VulnerabilityDto(
42-
identifier = identifier,
43-
progress = severityNum,
44-
projects = emptyList(), // TODO: not supported yet
45-
description = null, // it's empty by old logic
46-
shortDescription = summary,
47-
relatedLink = null, // FIXME: related link is not available here
48-
language = language,
49-
userInfo = user, // it was empty in old logic, but will populate to simplify the logic
50-
organization = organization,
51-
dates = emptyList(),
52-
participants = emptyList(),
53-
status = status,
54-
creationDateTime = submitted,
55-
lastUpdatedDateTime = modified,
56-
)
57-
5837
companion object {
5938
/**
6039
* The maximum length of [summary] (and of `VulnerabilityMetadata.summary`).

save-cloud-common/src/commonMain/kotlin/com/saveourtool/save/entities/vulnerability/VulnerabilityDto.kt

Lines changed: 0 additions & 79 deletions
This file was deleted.

save-cloud-common/src/commonMain/kotlin/com/saveourtool/save/utils/CosvSchemaUtils.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
package com.saveourtool.save.utils
66

77
import com.saveourtool.save.entities.vulnerability.*
8-
import com.saveourtool.save.entities.vulnerability.VulnerabilityDto.Companion.vulnerabilityPrefixes
98
import com.saveourtool.save.info.UserInfo
109

1110
import com.saveourtool.osv4k.*

save-frontend/src/main/kotlin/com/saveourtool/save/frontend/components/basic/organizations/OrganizationVulnerabilitiesTab.kt

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
package com.saveourtool.save.frontend.components.basic.organizations
66

77
import com.saveourtool.save.entities.cosv.VulnerabilityMetadataDto
8-
import com.saveourtool.save.entities.vulnerability.VulnerabilityDto
98
import com.saveourtool.save.filters.VulnerabilityFilter
109
import com.saveourtool.save.frontend.components.tables.TableProps
1110
import com.saveourtool.save.frontend.components.tables.columns
@@ -31,7 +30,7 @@ private val vulnerabilitiesUrl = "$apiUrl/vulnerabilities"
3130
private val vulnerabilityTable: FC<VulnerabilityTableProps> = tableComponent(
3231
columns = {
3332
columns {
34-
column(id = "name", header = "Name", VulnerabilityDto::identifier) { cellContext ->
33+
column(id = "name", header = "Name", VulnerabilityMetadataDto::identifier) { cellContext ->
3534
Fragment.create {
3635
td {
3736
Link {
@@ -42,21 +41,21 @@ private val vulnerabilityTable: FC<VulnerabilityTableProps> = tableComponent(
4241
}
4342
}
4443
}
45-
column(id = "short_description", header = "Description", VulnerabilityDto::shortDescription) { cellContext ->
44+
column(id = "short_description", header = "Description", VulnerabilityMetadataDto::summary) { cellContext ->
4645
Fragment.create {
4746
td {
4847
+cellContext.value
4948
}
5049
}
5150
}
52-
column(id = "progress", header = "Criticality", VulnerabilityDto::progress) { cellContext ->
51+
column(id = "progress", header = "Criticality", VulnerabilityMetadataDto::severityNum) { cellContext ->
5352
Fragment.create {
5453
td {
5554
+cellContext.value.toString()
5655
}
5756
}
5857
}
59-
column(id = "language", header = "Language", VulnerabilityDto::language) { cellContext ->
58+
column(id = "language", header = "Language", VulnerabilityMetadataDto::language) { cellContext ->
6059
Fragment.create {
6160
td {
6261
+cellContext.value.toString()
@@ -115,12 +114,9 @@ val organizationVulnerabilitiesTab: FC<OrganizationVulnerabilitiesMenuProps> = F
115114
body = filterJson,
116115
loadingHandler = ::loadingHandler,
117116
responseHandler = ::noopResponseHandler,
118-
)
119-
.unsafeMap<Array<out VulnerabilityMetadataDto>> { response ->
120-
response.decodeFromJsonString()
121-
}
122-
.map(VulnerabilityMetadataDto::toVulnerabilityDto)
123-
.toTypedArray()
117+
).unsafeMap { response ->
118+
response.decodeFromJsonString()
119+
}
124120
}
125121
getPageCount = { pageSize ->
126122
pageCount(count, pageSize)
@@ -147,7 +143,7 @@ val organizationVulnerabilitiesTab: FC<OrganizationVulnerabilitiesMenuProps> = F
147143
*
148144
* @see vulnerabilityTable
149145
*/
150-
external interface VulnerabilityTableProps : TableProps<VulnerabilityDto> {
146+
external interface VulnerabilityTableProps : TableProps<VulnerabilityMetadataDto> {
151147
/**
152148
* The total count of approved vulnerabilities for this organization.
153149
*/

0 commit comments

Comments
 (0)