diff --git a/src/main/kotlin/ingsis/snippetmanager/domains/snippet/controller/SnippetController.kt b/src/main/kotlin/ingsis/snippetmanager/domains/snippet/controller/SnippetController.kt index 7fe5a38..4ca3958 100644 --- a/src/main/kotlin/ingsis/snippetmanager/domains/snippet/controller/SnippetController.kt +++ b/src/main/kotlin/ingsis/snippetmanager/domains/snippet/controller/SnippetController.kt @@ -84,6 +84,14 @@ class SnippetController { return ResponseEntity(snippetService.getSnippetsByUserIdAndSnippetId(userId, ids), HttpStatus.OK) } + @GetMapping("/snippet/shared_with_me") + @ResponseBody + fun getSharedWithMeSnippets(@RequestHeader("Authorization") token: String, principal: Principal): ResponseEntity> { + val ids = ShareSnippetService.getSharedWithMeSnippetsIds(token) + val userId = principal.name + return ResponseEntity(snippetService.getSnippetsFromIdList(ids), HttpStatus.OK) + } + @GetMapping("/snippet/all") @ResponseBody fun getAllSnippet(@RequestHeader("Authorization") token: String, principal: Principal): ResponseEntity> { diff --git a/src/main/kotlin/ingsis/snippetmanager/domains/snippet/dto/SnippetDTO.kt b/src/main/kotlin/ingsis/snippetmanager/domains/snippet/dto/SnippetDTO.kt index 4c16c3f..e7b1241 100644 --- a/src/main/kotlin/ingsis/snippetmanager/domains/snippet/dto/SnippetDTO.kt +++ b/src/main/kotlin/ingsis/snippetmanager/domains/snippet/dto/SnippetDTO.kt @@ -1,5 +1,6 @@ package ingsis.snippetmanager.domains.snippet.dto +import ingsis.snippetmanager.domains.rule.model.ComplianceState import ingsis.snippetmanager.domains.snippet.model.Snippet import ingsis.snippetmanager.domains.test.dto.CreateTestDTO import ingsis.snippetmanager.domains.test.model.Test @@ -11,6 +12,7 @@ class SnippetDTO { var name: String? = null var type: String? = null var content: String? = null + var compliance: ComplianceState? = null var tests: List? = null var ownerId: String? = null var createdAt: Date? = null @@ -29,6 +31,7 @@ class SnippetDTO { this.tests = tests!!.map { CreateTestDTO(it.description, parseStringToList(it.input!!), parseStringToList(it.output!!), it.snippet!!.id) } this.ownerId = ownerId this.createdAt = createdAt + this.compliance = ComplianceState.PENDING } constructor(snippet: Snippet){ @@ -39,6 +42,7 @@ class SnippetDTO { this.ownerId = snippet.ownerId this.createdAt = snippet.createdAt this.id = snippet.id + this.compliance = snippet.compliance } private fun parseStringToList(string: String): List { diff --git a/src/main/kotlin/ingsis/snippetmanager/domains/snippet/repository/SnippetRepository.kt b/src/main/kotlin/ingsis/snippetmanager/domains/snippet/repository/SnippetRepository.kt index e245336..d9e4c25 100644 --- a/src/main/kotlin/ingsis/snippetmanager/domains/snippet/repository/SnippetRepository.kt +++ b/src/main/kotlin/ingsis/snippetmanager/domains/snippet/repository/SnippetRepository.kt @@ -15,4 +15,7 @@ interface SnippetRepository : JpaRepository { @Query("SELECT s FROM Snippet s WHERE s.ownerId = :userId OR s.id IN :snippets") fun findAllByUserIdAndSnippetId(userId: String, snippets: List): List + + @Query("SELECT s FROM Snippet s WHERE s.id IN :snippets") + fun findAllInIdList(snippets: List): List } \ No newline at end of file diff --git a/src/main/kotlin/ingsis/snippetmanager/domains/snippet/service/SnippetService.kt b/src/main/kotlin/ingsis/snippetmanager/domains/snippet/service/SnippetService.kt index 333e59a..04b1d0a 100644 --- a/src/main/kotlin/ingsis/snippetmanager/domains/snippet/service/SnippetService.kt +++ b/src/main/kotlin/ingsis/snippetmanager/domains/snippet/service/SnippetService.kt @@ -17,4 +17,5 @@ interface SnippetService { fun getSnippetsByUserIdAndSnippetId(userId: String, snippets: List): List fun validateOwnership(userId: String, snippetId: UUID) fun setSnippetCompliance(snippetId: UUID, compliance: ComplianceState) + fun getSnippetsFromIdList(ids: List): List } \ No newline at end of file diff --git a/src/main/kotlin/ingsis/snippetmanager/domains/snippet/service/SnippetServiceImpl.kt b/src/main/kotlin/ingsis/snippetmanager/domains/snippet/service/SnippetServiceImpl.kt index 4346596..c982d90 100644 --- a/src/main/kotlin/ingsis/snippetmanager/domains/snippet/service/SnippetServiceImpl.kt +++ b/src/main/kotlin/ingsis/snippetmanager/domains/snippet/service/SnippetServiceImpl.kt @@ -99,4 +99,8 @@ class SnippetServiceImpl: SnippetService { throw HTTPError("Snippet not found", HttpStatus.NOT_FOUND) } } + + override fun getSnippetsFromIdList(ids: List): List { + return this.snippetRepository.findAllInIdList(ids).map { SnippetDTO(it) } + } } \ No newline at end of file