mirror of https://github.com/usbharu/Hideout.git
feat: MediaにオーナーのActorIdを追加
This commit is contained in:
parent
aa476256ac
commit
e15380c96c
|
@ -58,7 +58,8 @@ class UploadMediaApplicationService(
|
|||
type = process.fileType,
|
||||
mimeType = process.mimeType,
|
||||
blurHash = process.blurHash?.let { MediaBlurHash(it) },
|
||||
description = command.description?.let { MediaDescription(it) }
|
||||
description = command.description?.let { MediaDescription(it) },
|
||||
actorId = principal.actorId
|
||||
)
|
||||
|
||||
mediaRepository.save(media)
|
||||
|
|
|
@ -10,18 +10,20 @@ data class MediaDetail(
|
|||
val thumbnailUrl: URI?,
|
||||
val sensitive: Boolean,
|
||||
val description: String,
|
||||
val blurhash: String
|
||||
val blurhash: String,
|
||||
val actorId: Long
|
||||
) {
|
||||
companion object {
|
||||
fun of(media: Media): MediaDetail {
|
||||
return MediaDetail(
|
||||
media.id.id,
|
||||
media.type.name,
|
||||
media.url,
|
||||
media.thumbnailUrl,
|
||||
false,
|
||||
media.description?.description.orEmpty(),
|
||||
media.blurHash?.hash.orEmpty()
|
||||
mediaId = media.id.id,
|
||||
type = media.type.name,
|
||||
url = media.url,
|
||||
thumbnailUrl = media.thumbnailUrl,
|
||||
sensitive = false,
|
||||
description = media.description?.description.orEmpty(),
|
||||
blurhash = media.blurHash?.hash.orEmpty(),
|
||||
actorId = media.actorId.id
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
package dev.usbharu.hideout.core.domain.model.media
|
||||
|
||||
import dev.usbharu.hideout.core.domain.model.actor.ActorId
|
||||
import java.net.URI
|
||||
|
||||
class Media(
|
||||
|
@ -28,6 +29,7 @@ class Media(
|
|||
val mimeType: MimeType,
|
||||
val blurHash: MediaBlurHash?,
|
||||
val description: MediaDescription? = null,
|
||||
val actorId: ActorId,
|
||||
) {
|
||||
var url = url
|
||||
private set
|
||||
|
@ -35,17 +37,35 @@ class Media(
|
|||
fun setUrl(url: URI) {
|
||||
this.url = url
|
||||
}
|
||||
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (this === other) return true
|
||||
if (javaClass != other?.javaClass) return false
|
||||
|
||||
other as Media
|
||||
|
||||
return id == other.id
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
return id.hashCode()
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
return "Media(" +
|
||||
"id=$id, " +
|
||||
"name=$name, " +
|
||||
"url=$url, " +
|
||||
"remoteUrl=$remoteUrl, " +
|
||||
"thumbnailUrl=$thumbnailUrl, " +
|
||||
"type=$type, " +
|
||||
"mimeType=$mimeType, " +
|
||||
"blurHash=$blurHash, " +
|
||||
"description=$description" +
|
||||
")"
|
||||
"id=$id, " +
|
||||
"name=$name, " +
|
||||
"remoteUrl=$remoteUrl, " +
|
||||
"thumbnailUrl=$thumbnailUrl, " +
|
||||
"type=$type, " +
|
||||
"mimeType=$mimeType, " +
|
||||
"blurHash=$blurHash, " +
|
||||
"description=$description, " +
|
||||
"actorId=$actorId, " +
|
||||
"url=$url" +
|
||||
")"
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
package dev.usbharu.hideout.core.infrastructure.exposedrepository
|
||||
|
||||
import dev.usbharu.hideout.core.domain.model.actor.ActorId
|
||||
import dev.usbharu.hideout.core.domain.model.media.*
|
||||
import org.jetbrains.exposed.sql.*
|
||||
import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
|
||||
|
@ -66,6 +67,7 @@ class MediaRepositoryImpl : MediaRepository, AbstractRepository() {
|
|||
it[blurhash] = media.blurHash?.hash
|
||||
it[mimeType] = media.mimeType.type + "/" + media.mimeType.subtype
|
||||
it[description] = media.description?.description
|
||||
it[actorId] = media.actorId.id
|
||||
}
|
||||
} else {
|
||||
Media.insert {
|
||||
|
@ -78,6 +80,7 @@ class MediaRepositoryImpl : MediaRepository, AbstractRepository() {
|
|||
it[blurhash] = media.blurHash?.hash
|
||||
it[mimeType] = media.mimeType.type + "/" + media.mimeType.subtype
|
||||
it[description] = media.description?.description
|
||||
it[actorId] = media.actorId.id
|
||||
}
|
||||
}
|
||||
return@query media
|
||||
|
@ -100,7 +103,8 @@ fun ResultRow.toMedia(): EntityMedia {
|
|||
type = fileType,
|
||||
blurHash = this[Media.blurhash]?.let { MediaBlurHash(it) },
|
||||
mimeType = MimeType(mimeType.substringBefore("/"), mimeType.substringAfter("/"), fileType),
|
||||
description = this[Media.description]?.let { MediaDescription(it) }
|
||||
description = this[Media.description]?.let { MediaDescription(it) },
|
||||
actorId = ActorId(this[Media.actorId])
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -114,5 +118,6 @@ object Media : Table("media") {
|
|||
val blurhash = varchar("blurhash", 255).nullable()
|
||||
val mimeType = varchar("mime_type", 255)
|
||||
val description = varchar("description", 4000).nullable()
|
||||
val actorId = long("actor_id").references(Actors.id)
|
||||
override val primaryKey = PrimaryKey(id)
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
package dev.usbharu.hideout.mastodon.infrastructure.exposedquery
|
||||
|
||||
import dev.usbharu.hideout.core.domain.model.actor.ActorId
|
||||
import dev.usbharu.hideout.core.domain.model.emoji.CustomEmoji
|
||||
import dev.usbharu.hideout.core.domain.model.media.*
|
||||
import dev.usbharu.hideout.core.domain.model.post.Visibility
|
||||
|
@ -284,7 +285,8 @@ fun ResultRow.toMedia(): EntityMedia {
|
|||
type = fileType,
|
||||
blurHash = this[Media.blurhash]?.let { MediaBlurHash(it) },
|
||||
mimeType = MimeType(mimeType.substringBefore("/"), mimeType.substringAfter("/"), fileType),
|
||||
description = this[Media.description]?.let { MediaDescription(it) }
|
||||
description = this[Media.description]?.let { MediaDescription(it) },
|
||||
actorId = ActorId(this[Media.actorId])
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -300,7 +302,8 @@ fun ResultRow.toMediaOrNull(): EntityMedia? {
|
|||
type = FileType.valueOf(this[Media.type]),
|
||||
blurHash = this[Media.blurhash]?.let { MediaBlurHash(it) },
|
||||
mimeType = MimeType(mimeType.substringBefore("/"), mimeType.substringAfter("/"), fileType),
|
||||
description = this[Media.description]?.let { MediaDescription(it) }
|
||||
description = this[Media.description]?.let { MediaDescription(it) },
|
||||
actorId = ActorId(this[Media.actorId])
|
||||
)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue