DocumentBrief projection for overview

master
Josha von Gizycki 6 days ago
parent c7c1ad5a0b
commit 2b209af4ed

@ -1,6 +1,7 @@
package wanijo.wanijo2.domain package wanijo.wanijo2.domain
import org.springframework.data.annotation.Id import org.springframework.data.annotation.Id
import org.springframework.data.domain.Sort
import org.springframework.data.jdbc.repository.query.Modifying import org.springframework.data.jdbc.repository.query.Modifying
import org.springframework.data.jdbc.repository.query.Query import org.springframework.data.jdbc.repository.query.Query
import org.springframework.data.relational.core.mapping.Table import org.springframework.data.relational.core.mapping.Table
@ -23,7 +24,15 @@ data class Document(
val dateFields: Set<DateField> = emptySet(), val dateFields: Set<DateField> = emptySet(),
) )
interface DocumentDao: Repository<Document, DocumentId> { @Table("T_DOCUMENT")
data class DocumentBrief(
@Id
val id: DocumentId,
val name: DocumentName,
val updatedAt: ZonedDateTime
)
interface DocumentDao : Repository<Document, DocumentId> {
fun findAll(): List<Document> fun findAll(): List<Document>
fun findById(id: DocumentId): Document? fun findById(id: DocumentId): Document?
fun findByName(name: DocumentName): List<Document> fun findByName(name: DocumentName): List<Document>
@ -68,3 +77,7 @@ interface DocumentDao: Repository<Document, DocumentId> {
) )
fun delete(documentId: DocumentId) fun delete(documentId: DocumentId)
} }
interface DocumentBriefDao : Repository<DocumentBrief, DocumentId> {
fun findAll(sort: Sort): List<DocumentBrief>
}

@ -1,22 +1,23 @@
package wanijo.wanijo2.http.controller package wanijo.wanijo2.http.controller
import org.springframework.data.domain.Sort
import org.springframework.stereotype.Controller import org.springframework.stereotype.Controller
import org.springframework.ui.Model import org.springframework.ui.Model
import org.springframework.ui.set import org.springframework.ui.set
import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.GetMapping
import wanijo.wanijo2.domain.DocumentBriefDao
import wanijo.wanijo2.domain.DocumentDao import wanijo.wanijo2.domain.DocumentDao
@Controller @Controller
class ListController( class ListController(
private val docDao: DocumentDao private val docDao: DocumentBriefDao
) { ) {
@GetMapping("", "/") @GetMapping("", "/")
fun list( fun list(
model: Model model: Model
): String { ): String {
// TODO build overview class for documents without sub fields model["documents"] = docDao.findAll(Sort.by(Sort.Direction.DESC, "updatedAt"))
model["documents"] = docDao.findAll()
return "list" return "list"
} }

Loading…
Cancel
Save