From 6febcbec0c6cbc9ee37487ba35ce66cf166030c1 Mon Sep 17 00:00:00 2001 From: usbharu <64310155+usbharu@users.noreply.github.com> Date: Wed, 24 Jan 2024 16:17:17 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20content=E3=82=92=E6=B0=B8=E7=B6=9A?= =?UTF-8?q?=E5=8C=96=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../usbharu/hideout/core/domain/model/post/Post.kt | 12 +++++++++--- .../exposedrepository/PostRepositoryImpl.kt | 3 +++ src/main/resources/db/migration/V1__Init_DB.sql | 1 + 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/dev/usbharu/hideout/core/domain/model/post/Post.kt b/src/main/kotlin/dev/usbharu/hideout/core/domain/model/post/Post.kt index 4eb41077..0eabb4aa 100644 --- a/src/main/kotlin/dev/usbharu/hideout/core/domain/model/post/Post.kt +++ b/src/main/kotlin/dev/usbharu/hideout/core/domain/model/post/Post.kt @@ -1,6 +1,7 @@ package dev.usbharu.hideout.core.domain.model.post import dev.usbharu.hideout.application.config.CharacterLimit +import dev.usbharu.hideout.core.service.post.PostContentFormatter import org.springframework.stereotype.Component import java.time.Instant @@ -23,7 +24,10 @@ data class Post private constructor( ) { @Component - class PostBuilder(private val characterLimit: CharacterLimit) { + class PostBuilder( + private val characterLimit: CharacterLimit, + private val postContentFormatter: PostContentFormatter + ) { @Suppress("FunctionMinLength", "LongParameterList") fun of( id: Long, @@ -56,6 +60,8 @@ data class Post private constructor( content } + val (html, content1) = postContentFormatter.format(limitedText) + require(url.isNotBlank()) { "url must contain non-blank characters" } require(url.length <= characterLimit.general.url) { "url must not exceed ${characterLimit.general.url} characters." @@ -68,8 +74,8 @@ data class Post private constructor( id = id, actorId = actorId, overview = limitedOverview, - content = content, - text = limitedText, + content = html, + text = content1, createdAt = createdAt, visibility = visibility, url = url, diff --git a/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/PostRepositoryImpl.kt b/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/PostRepositoryImpl.kt index 4df40c2d..b3816c23 100644 --- a/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/PostRepositoryImpl.kt +++ b/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/PostRepositoryImpl.kt @@ -27,6 +27,7 @@ class PostRepositoryImpl( it[id] = post.id it[actorId] = post.actorId it[overview] = post.overview + it[content] = post.content it[text] = post.text it[createdAt] = post.createdAt it[visibility] = post.visibility.ordinal @@ -63,6 +64,7 @@ class PostRepositoryImpl( Posts.update({ Posts.id eq post.id }) { it[actorId] = post.actorId it[overview] = post.overview + it[content] = post.content it[text] = post.text it[createdAt] = post.createdAt it[visibility] = post.visibility.ordinal @@ -128,6 +130,7 @@ object Posts : Table() { val id: Column = long("id") val actorId: Column = long("actor_id").references(Actors.id) val overview: Column = varchar("overview", 100).nullable() + val content = varchar("content", 5000) val text: Column = varchar("text", 3000) val createdAt: Column = long("created_at") val visibility: Column = integer("visibility").default(0) diff --git a/src/main/resources/db/migration/V1__Init_DB.sql b/src/main/resources/db/migration/V1__Init_DB.sql index 2e9e638b..fe745aed 100644 --- a/src/main/resources/db/migration/V1__Init_DB.sql +++ b/src/main/resources/db/migration/V1__Init_DB.sql @@ -90,6 +90,7 @@ create table if not exists posts id bigint primary key, actor_id bigint not null, overview varchar(100) null, + content varchar(5000) not null, text varchar(3000) not null, created_at bigint not null, visibility int default 0 not null,