mirror of https://github.com/usbharu/Hideout.git
wip
This commit is contained in:
parent
97d9bf0898
commit
e14a4aa89a
|
@ -17,7 +17,7 @@
|
||||||
package util
|
package util
|
||||||
|
|
||||||
import dev.usbharu.hideout.core.application.shared.Transaction
|
import dev.usbharu.hideout.core.application.shared.Transaction
|
||||||
import dev.usbharu.hideout.core.domain.exception.resource.UserNotFoundException
|
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
||||||
import dev.usbharu.hideout.core.infrastructure.springframework.httpsignature.HttpSignatureUser
|
import dev.usbharu.hideout.core.infrastructure.springframework.httpsignature.HttpSignatureUser
|
||||||
import dev.usbharu.httpsignature.common.HttpHeaders
|
import dev.usbharu.httpsignature.common.HttpHeaders
|
||||||
import dev.usbharu.httpsignature.common.HttpMethod
|
import dev.usbharu.httpsignature.common.HttpMethod
|
||||||
|
|
|
@ -16,6 +16,9 @@
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.application.post
|
package dev.usbharu.hideout.core.application.post
|
||||||
|
|
||||||
|
import dev.usbharu.hideout.core.application.shared.AbstractApplicationService
|
||||||
|
import dev.usbharu.hideout.core.application.shared.CommandExecutor
|
||||||
|
import dev.usbharu.hideout.core.application.shared.Transaction
|
||||||
import dev.usbharu.hideout.core.domain.model.actor.ActorId
|
import dev.usbharu.hideout.core.domain.model.actor.ActorId
|
||||||
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
||||||
import dev.usbharu.hideout.core.domain.model.media.MediaId
|
import dev.usbharu.hideout.core.domain.model.media.MediaId
|
||||||
|
@ -23,6 +26,8 @@ import dev.usbharu.hideout.core.domain.model.post.PostId
|
||||||
import dev.usbharu.hideout.core.domain.model.post.PostOverview
|
import dev.usbharu.hideout.core.domain.model.post.PostOverview
|
||||||
import dev.usbharu.hideout.core.domain.model.post.PostRepository
|
import dev.usbharu.hideout.core.domain.model.post.PostRepository
|
||||||
import dev.usbharu.hideout.core.infrastructure.factory.PostFactoryImpl
|
import dev.usbharu.hideout.core.infrastructure.factory.PostFactoryImpl
|
||||||
|
import org.slf4j.Logger
|
||||||
|
import org.slf4j.LoggerFactory
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@ -30,20 +35,24 @@ class RegisterLocalPostApplicationService(
|
||||||
private val postFactory: PostFactoryImpl,
|
private val postFactory: PostFactoryImpl,
|
||||||
private val actorRepository: ActorRepository,
|
private val actorRepository: ActorRepository,
|
||||||
private val postRepository: PostRepository,
|
private val postRepository: PostRepository,
|
||||||
) {
|
transaction: Transaction,
|
||||||
suspend fun register(registerLocalPost: RegisterLocalPost) {
|
) : AbstractApplicationService<RegisterLocalPost, Unit>(transaction, Companion.logger) {
|
||||||
val actorId = ActorId(registerLocalPost.actorId)
|
|
||||||
val post = postFactory.createLocal(
|
companion object {
|
||||||
actorId,
|
val logger: Logger = LoggerFactory.getLogger(RegisterLocalPostApplicationService::class.java)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun internalExecute(command: RegisterLocalPost, executor: CommandExecutor) {
|
||||||
|
val actorId = ActorId(command.actorId)
|
||||||
|
val post = postFactory.createLocal(actorId,
|
||||||
actorRepository.findById(actorId)!!.name,
|
actorRepository.findById(actorId)!!.name,
|
||||||
PostOverview(registerLocalPost.overview),
|
PostOverview(command.overview),
|
||||||
registerLocalPost.content,
|
command.content,
|
||||||
registerLocalPost.visibility,
|
command.visibility,
|
||||||
registerLocalPost.repostId?.let { PostId(it) },
|
command.repostId?.let { PostId(it) },
|
||||||
registerLocalPost.replyId?.let { PostId(it) },
|
command.replyId?.let { PostId(it) },
|
||||||
registerLocalPost.sensitive,
|
command.sensitive,
|
||||||
registerLocalPost.mediaIds.map { MediaId(it) }
|
command.mediaIds.map { MediaId(it) })
|
||||||
)
|
|
||||||
|
|
||||||
postRepository.save(post)
|
postRepository.save(post)
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.config
|
package dev.usbharu.hideout.core.config
|
||||||
|
|
||||||
|
import dev.usbharu.hideout.core.infrastructure.springframework.oauth2.HideoutUserDetails
|
||||||
import org.springframework.context.annotation.Bean
|
import org.springframework.context.annotation.Bean
|
||||||
import org.springframework.context.annotation.Configuration
|
import org.springframework.context.annotation.Configuration
|
||||||
import org.springframework.core.annotation.Order
|
import org.springframework.core.annotation.Order
|
||||||
|
@ -27,14 +28,19 @@ import org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl
|
||||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity
|
||||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity
|
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity
|
||||||
import org.springframework.security.config.annotation.web.invoke
|
import org.springframework.security.config.annotation.web.invoke
|
||||||
|
import org.springframework.security.core.Authentication
|
||||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
|
||||||
import org.springframework.security.crypto.password.PasswordEncoder
|
import org.springframework.security.crypto.password.PasswordEncoder
|
||||||
|
import org.springframework.security.oauth2.core.AuthorizationGrantType
|
||||||
import org.springframework.security.oauth2.server.authorization.JdbcOAuth2AuthorizationConsentService
|
import org.springframework.security.oauth2.server.authorization.JdbcOAuth2AuthorizationConsentService
|
||||||
import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationConsentService
|
import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationConsentService
|
||||||
|
import org.springframework.security.oauth2.server.authorization.OAuth2TokenType
|
||||||
import org.springframework.security.oauth2.server.authorization.client.JdbcRegisteredClientRepository
|
import org.springframework.security.oauth2.server.authorization.client.JdbcRegisteredClientRepository
|
||||||
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository
|
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository
|
||||||
import org.springframework.security.oauth2.server.authorization.config.annotation.web.configuration.OAuth2AuthorizationServerConfiguration
|
import org.springframework.security.oauth2.server.authorization.config.annotation.web.configuration.OAuth2AuthorizationServerConfiguration
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings
|
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings
|
||||||
|
import org.springframework.security.oauth2.server.authorization.token.JwtEncodingContext
|
||||||
|
import org.springframework.security.oauth2.server.authorization.token.OAuth2TokenCustomizer
|
||||||
import org.springframework.security.web.SecurityFilterChain
|
import org.springframework.security.web.SecurityFilterChain
|
||||||
import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint
|
import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint
|
||||||
|
|
||||||
|
@ -99,6 +105,20 @@ class SecurityConfig {
|
||||||
.tokenEndpoint("/oauth/token").tokenRevocationEndpoint("/oauth/revoke").build()
|
.tokenEndpoint("/oauth/token").tokenRevocationEndpoint("/oauth/revoke").build()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
fun jwtTokenCustomizer(): OAuth2TokenCustomizer<JwtEncodingContext> {
|
||||||
|
return OAuth2TokenCustomizer { context: JwtEncodingContext ->
|
||||||
|
|
||||||
|
if (OAuth2TokenType.ACCESS_TOKEN == context.tokenType &&
|
||||||
|
context.authorization?.authorizationGrantType == AuthorizationGrantType.AUTHORIZATION_CODE
|
||||||
|
) {
|
||||||
|
val userDetailsImpl = context.getPrincipal<Authentication>().principal as HideoutUserDetails
|
||||||
|
context.claims.claim("uid", userDetailsImpl.userDetailsId.toString())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
fun roleHierarchy(): RoleHierarchy {
|
fun roleHierarchy(): RoleHierarchy {
|
||||||
val roleHierarchyImpl = RoleHierarchyImpl.fromHierarchy(
|
val roleHierarchyImpl = RoleHierarchyImpl.fromHierarchy(
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2024 usbharu
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.domain.exception
|
|
||||||
|
|
||||||
import java.io.Serial
|
|
||||||
|
|
||||||
open class FailedToGetResourcesException : IllegalArgumentException {
|
|
||||||
constructor() : super()
|
|
||||||
constructor(s: String?) : super(s)
|
|
||||||
constructor(message: String?, cause: Throwable?) : super(message, cause)
|
|
||||||
constructor(cause: Throwable?) : super(cause)
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
@Serial
|
|
||||||
private const val serialVersionUID: Long = -3117221954866309059L
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2024 usbharu
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.domain.exception
|
|
||||||
|
|
||||||
import java.io.Serial
|
|
||||||
import javax.naming.AuthenticationException
|
|
||||||
|
|
||||||
class HttpSignatureVerifyException : AuthenticationException {
|
|
||||||
constructor() : super()
|
|
||||||
constructor(s: String?) : super(s)
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
@Serial
|
|
||||||
private const val serialVersionUID: Long = 1484943321770741944L
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2024 usbharu
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.domain.exception
|
|
||||||
|
|
||||||
import java.io.Serial
|
|
||||||
|
|
||||||
class NotInitException : IllegalStateException {
|
|
||||||
constructor() : super()
|
|
||||||
constructor(s: String?) : super(s)
|
|
||||||
constructor(message: String?, cause: Throwable?) : super(message, cause)
|
|
||||||
constructor(cause: Throwable?) : super(cause)
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
@Serial
|
|
||||||
private const val serialVersionUID: Long = -5859046179473905716L
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2024 usbharu
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.domain.exception
|
|
||||||
|
|
||||||
import java.io.Serial
|
|
||||||
|
|
||||||
class UserNotFoundException : IllegalArgumentException {
|
|
||||||
constructor() : super()
|
|
||||||
constructor(s: String?) : super(s)
|
|
||||||
constructor(message: String?, cause: Throwable?) : super(message, cause)
|
|
||||||
constructor(cause: Throwable?) : super(cause)
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
@Serial
|
|
||||||
private const val serialVersionUID: Long = 6343548635914580823L
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2024 usbharu
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.domain.exception.media
|
|
||||||
|
|
||||||
import java.io.Serial
|
|
||||||
|
|
||||||
open class MediaConvertException : MediaException {
|
|
||||||
constructor() : super()
|
|
||||||
constructor(message: String?) : super(message)
|
|
||||||
constructor(message: String?, cause: Throwable?) : super(message, cause)
|
|
||||||
constructor(cause: Throwable?) : super(cause)
|
|
||||||
constructor(message: String?, cause: Throwable?, enableSuppression: Boolean, writableStackTrace: Boolean) : super(
|
|
||||||
message,
|
|
||||||
cause,
|
|
||||||
enableSuppression,
|
|
||||||
writableStackTrace
|
|
||||||
)
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
@Serial
|
|
||||||
private const val serialVersionUID: Long = -6349105549968160551L
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,38 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2024 usbharu
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.domain.exception.media
|
|
||||||
|
|
||||||
import java.io.Serial
|
|
||||||
|
|
||||||
@Suppress("UnnecessaryAbstractClass")
|
|
||||||
abstract class MediaException : RuntimeException {
|
|
||||||
constructor() : super()
|
|
||||||
constructor(message: String?) : super(message)
|
|
||||||
constructor(message: String?, cause: Throwable?) : super(message, cause)
|
|
||||||
constructor(cause: Throwable?) : super(cause)
|
|
||||||
constructor(message: String?, cause: Throwable?, enableSuppression: Boolean, writableStackTrace: Boolean) : super(
|
|
||||||
message,
|
|
||||||
cause,
|
|
||||||
enableSuppression,
|
|
||||||
writableStackTrace
|
|
||||||
)
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
@Serial
|
|
||||||
private const val serialVersionUID: Long = 5988922562494187852L
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2024 usbharu
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.domain.exception.media
|
|
||||||
|
|
||||||
import java.io.Serial
|
|
||||||
|
|
||||||
open class MediaFileSizeException : MediaException {
|
|
||||||
constructor() : super()
|
|
||||||
constructor(message: String?) : super(message)
|
|
||||||
constructor(message: String?, cause: Throwable?) : super(message, cause)
|
|
||||||
constructor(cause: Throwable?) : super(cause)
|
|
||||||
constructor(message: String?, cause: Throwable?, enableSuppression: Boolean, writableStackTrace: Boolean) : super(
|
|
||||||
message,
|
|
||||||
cause,
|
|
||||||
enableSuppression,
|
|
||||||
writableStackTrace
|
|
||||||
)
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
@Serial
|
|
||||||
private const val serialVersionUID: Long = 8672626879026555064L
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2024 usbharu
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.domain.exception.media
|
|
||||||
|
|
||||||
import java.io.Serial
|
|
||||||
|
|
||||||
class MediaFileSizeIsZeroException : MediaFileSizeException {
|
|
||||||
constructor() : super()
|
|
||||||
constructor(message: String?) : super(message)
|
|
||||||
constructor(message: String?, cause: Throwable?) : super(message, cause)
|
|
||||||
constructor(cause: Throwable?) : super(cause)
|
|
||||||
constructor(message: String?, cause: Throwable?, enableSuppression: Boolean, writableStackTrace: Boolean) : super(
|
|
||||||
message,
|
|
||||||
cause,
|
|
||||||
enableSuppression,
|
|
||||||
writableStackTrace
|
|
||||||
)
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
@Serial
|
|
||||||
private const val serialVersionUID: Long = -2398394583775317875L
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2024 usbharu
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.domain.exception.media
|
|
||||||
|
|
||||||
import java.io.Serial
|
|
||||||
|
|
||||||
class MediaProcessException : MediaException {
|
|
||||||
constructor() : super()
|
|
||||||
constructor(message: String?) : super(message)
|
|
||||||
constructor(message: String?, cause: Throwable?) : super(message, cause)
|
|
||||||
constructor(cause: Throwable?) : super(cause)
|
|
||||||
constructor(message: String?, cause: Throwable?, enableSuppression: Boolean, writableStackTrace: Boolean) : super(
|
|
||||||
message,
|
|
||||||
cause,
|
|
||||||
enableSuppression,
|
|
||||||
writableStackTrace
|
|
||||||
)
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
@Serial
|
|
||||||
private const val serialVersionUID: Long = -5195233013542703735L
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2024 usbharu
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.domain.exception.media
|
|
||||||
|
|
||||||
open class MediaSaveException : MediaException {
|
|
||||||
constructor() : super()
|
|
||||||
constructor(message: String?) : super(message)
|
|
||||||
constructor(message: String?, cause: Throwable?) : super(message, cause)
|
|
||||||
constructor(cause: Throwable?) : super(cause)
|
|
||||||
constructor(message: String?, cause: Throwable?, enableSuppression: Boolean, writableStackTrace: Boolean) : super(
|
|
||||||
message,
|
|
||||||
cause,
|
|
||||||
enableSuppression,
|
|
||||||
writableStackTrace
|
|
||||||
)
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2024 usbharu
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.domain.exception.media
|
|
||||||
|
|
||||||
import java.io.Serial
|
|
||||||
|
|
||||||
class RemoteMediaFileSizeException : MediaFileSizeException {
|
|
||||||
constructor() : super()
|
|
||||||
constructor(message: String?) : super(message)
|
|
||||||
constructor(message: String?, cause: Throwable?) : super(message, cause)
|
|
||||||
constructor(cause: Throwable?) : super(cause)
|
|
||||||
constructor(message: String?, cause: Throwable?, enableSuppression: Boolean, writableStackTrace: Boolean) : super(
|
|
||||||
message,
|
|
||||||
cause,
|
|
||||||
enableSuppression,
|
|
||||||
writableStackTrace
|
|
||||||
)
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
@Serial
|
|
||||||
private const val serialVersionUID: Long = 9188247721397839435L
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2024 usbharu
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.domain.exception.media
|
|
||||||
|
|
||||||
import java.io.Serial
|
|
||||||
|
|
||||||
class UnsupportedMediaException : MediaException {
|
|
||||||
constructor() : super()
|
|
||||||
constructor(message: String?) : super(message)
|
|
||||||
constructor(message: String?, cause: Throwable?) : super(message, cause)
|
|
||||||
constructor(cause: Throwable?) : super(cause)
|
|
||||||
constructor(message: String?, cause: Throwable?, enableSuppression: Boolean, writableStackTrace: Boolean) : super(
|
|
||||||
message,
|
|
||||||
cause,
|
|
||||||
enableSuppression,
|
|
||||||
writableStackTrace
|
|
||||||
)
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
@Serial
|
|
||||||
private const val serialVersionUID: Long = -116741513216017134L
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,43 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2024 usbharu
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.domain.exception.resource
|
|
||||||
|
|
||||||
import java.io.Serial
|
|
||||||
|
|
||||||
class PostNotFoundException : NotFoundException {
|
|
||||||
constructor() : super()
|
|
||||||
constructor(message: String?) : super(message)
|
|
||||||
constructor(message: String?, cause: Throwable?) : super(message, cause)
|
|
||||||
constructor(cause: Throwable?) : super(cause)
|
|
||||||
constructor(message: String?, cause: Throwable?, enableSuppression: Boolean, writableStackTrace: Boolean) : super(
|
|
||||||
message,
|
|
||||||
cause,
|
|
||||||
enableSuppression,
|
|
||||||
writableStackTrace
|
|
||||||
)
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
@Serial
|
|
||||||
private const val serialVersionUID: Long = 1315818410686905717L
|
|
||||||
|
|
||||||
fun withApId(apId: String): PostNotFoundException = PostNotFoundException("apId: $apId was not found.")
|
|
||||||
|
|
||||||
fun withId(id: Long): PostNotFoundException = PostNotFoundException("id: $id was not found.")
|
|
||||||
|
|
||||||
fun withUrl(url: String): PostNotFoundException = PostNotFoundException("url: $url was not found.")
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,52 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2024 usbharu
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.domain.exception.resource
|
|
||||||
|
|
||||||
import java.io.Serial
|
|
||||||
|
|
||||||
open class UserNotFoundException : NotFoundException {
|
|
||||||
constructor() : super()
|
|
||||||
constructor(message: String?) : super(message)
|
|
||||||
constructor(message: String?, cause: Throwable?) : super(message, cause)
|
|
||||||
constructor(cause: Throwable?) : super(cause)
|
|
||||||
constructor(message: String?, cause: Throwable?, enableSuppression: Boolean, writableStackTrace: Boolean) : super(
|
|
||||||
message,
|
|
||||||
cause,
|
|
||||||
enableSuppression,
|
|
||||||
writableStackTrace
|
|
||||||
)
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
@Serial
|
|
||||||
private const val serialVersionUID: Long = 3219433672235626200L
|
|
||||||
|
|
||||||
fun withName(string: String, throwable: Throwable? = null): UserNotFoundException =
|
|
||||||
UserNotFoundException("name: $string was not found.", throwable)
|
|
||||||
|
|
||||||
fun withId(id: Long, throwable: Throwable? = null): UserNotFoundException =
|
|
||||||
UserNotFoundException("id: $id was not found.", throwable)
|
|
||||||
|
|
||||||
fun withUrl(url: String, throwable: Throwable? = null): UserNotFoundException =
|
|
||||||
UserNotFoundException("url: $url was not found.", throwable)
|
|
||||||
|
|
||||||
fun withNameAndDomain(name: String, domain: String, throwable: Throwable? = null): UserNotFoundException =
|
|
||||||
UserNotFoundException("name: $name domain: $domain (@$name@$domain) was not found.", throwable)
|
|
||||||
|
|
||||||
fun withKeyId(keyId: String, throwable: Throwable? = null) =
|
|
||||||
UserNotFoundException("keyId: $keyId was not found.", throwable)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,47 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2024 usbharu
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package dev.usbharu.hideout.core.domain.exception.resource.local
|
|
||||||
|
|
||||||
import dev.usbharu.hideout.core.domain.exception.resource.UserNotFoundException
|
|
||||||
import java.io.Serial
|
|
||||||
|
|
||||||
class LocalUserNotFoundException : UserNotFoundException {
|
|
||||||
constructor() : super()
|
|
||||||
constructor(message: String?) : super(message)
|
|
||||||
constructor(message: String?, cause: Throwable?) : super(message, cause)
|
|
||||||
constructor(cause: Throwable?) : super(cause)
|
|
||||||
constructor(message: String?, cause: Throwable?, enableSuppression: Boolean, writableStackTrace: Boolean) : super(
|
|
||||||
message,
|
|
||||||
cause,
|
|
||||||
enableSuppression,
|
|
||||||
writableStackTrace
|
|
||||||
)
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
@Serial
|
|
||||||
private const val serialVersionUID: Long = -4742548128672528145L
|
|
||||||
|
|
||||||
fun withName(string: String, throwable: Throwable? = null): LocalUserNotFoundException =
|
|
||||||
LocalUserNotFoundException("name: $string was not found.", throwable)
|
|
||||||
|
|
||||||
fun withId(id: Long, throwable: Throwable? = null): LocalUserNotFoundException =
|
|
||||||
LocalUserNotFoundException("id: $id was not found.", throwable)
|
|
||||||
|
|
||||||
fun withUrl(url: String, throwable: Throwable? = null): LocalUserNotFoundException =
|
|
||||||
LocalUserNotFoundException("url: $url was not found.", throwable)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -18,7 +18,7 @@ package dev.usbharu.hideout.worker
|
||||||
|
|
||||||
import dev.usbharu.hideout.activitypub.service.objects.user.APUserService
|
import dev.usbharu.hideout.activitypub.service.objects.user.APUserService
|
||||||
import dev.usbharu.hideout.core.application.shared.Transaction
|
import dev.usbharu.hideout.core.application.shared.Transaction
|
||||||
import dev.usbharu.hideout.core.domain.exception.resource.UserNotFoundException
|
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
||||||
import dev.usbharu.hideout.core.external.job.ReceiveFollowTask
|
import dev.usbharu.hideout.core.external.job.ReceiveFollowTask
|
||||||
import dev.usbharu.hideout.core.external.job.ReceiveFollowTaskDef
|
import dev.usbharu.hideout.core.external.job.ReceiveFollowTaskDef
|
||||||
import dev.usbharu.owl.consumer.AbstractTaskRunner
|
import dev.usbharu.owl.consumer.AbstractTaskRunner
|
||||||
|
|
Loading…
Reference in New Issue