hexagonal-architect-spring-.../src/main/kotlin/com/cubetiqs/hexagonal/infrastructure/adapter/article/cli/ArticleCli.kt
2021-10-23 15:34:42 +07:00

23 lines
789 B
Kotlin

package com.cubetiqs.hexagonal.infrastructure.adapter.article.cli
import com.cubetiqs.hexagonal.domain.article.model.Article
import com.cubetiqs.hexagonal.domain.article.port.ArticlePort
import com.cubetiqs.hexagonal.domain.article.usecase.ArticleCreate
import com.cubetiqs.hexagonal.domain.article.usecase.ArticleQuery
class ArticleCli constructor(
private val articlePort: ArticlePort,
) {
fun create(accountId: Long, title: String, body: String): Article {
val article = ArticleCreate(accountId, title, body)
return articlePort.create(article)
}
fun retrieve(id: Long): Article {
return articlePort.retrieve(id)
}
fun query(accountId: Long): Collection<Article> {
return articlePort.query(ArticleQuery.from(accountId))
}
}