From 3bdcbf287200d6692c92d8c7c52a897f1e289fba Mon Sep 17 00:00:00 2001 From: yoshinorin Date: Tue, 13 Feb 2024 22:09:01 +0900 Subject: [PATCH] refactor(http): `MethodNotAllowSupport` trait more abstract --- .../yoshinorin/qualtet/http/MethodNotAllowedSupport.scala | 6 +++--- .../yoshinorin/qualtet/http/routes/v1/ArchiveRoute.scala | 2 +- .../yoshinorin/qualtet/http/routes/v1/ArticleRoute.scala | 2 +- .../net/yoshinorin/qualtet/http/routes/v1/AuthRoute.scala | 2 +- .../net/yoshinorin/qualtet/http/routes/v1/AuthorRoute.scala | 2 +- .../net/yoshinorin/qualtet/http/routes/v1/CacheRoute.scala | 2 +- .../yoshinorin/qualtet/http/routes/v1/ContentRoute.scala | 2 +- .../qualtet/http/routes/v1/ContentTypeRoute.scala | 2 +- .../net/yoshinorin/qualtet/http/routes/v1/FeedRoute.scala | 2 +- .../net/yoshinorin/qualtet/http/routes/v1/SearchRoute.scala | 2 +- .../net/yoshinorin/qualtet/http/routes/v1/SeriesRoute.scala | 2 +- .../yoshinorin/qualtet/http/routes/v1/SitemapRoute.scala | 2 +- .../yoshinorin/qualtet/http/routes/v1/SystemRoutes.scala | 2 +- .../net/yoshinorin/qualtet/http/routes/v1/TagRoute.scala | 2 +- 14 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/main/scala/net/yoshinorin/qualtet/http/MethodNotAllowedSupport.scala b/src/main/scala/net/yoshinorin/qualtet/http/MethodNotAllowedSupport.scala index fdd3636b..848b09d5 100644 --- a/src/main/scala/net/yoshinorin/qualtet/http/MethodNotAllowedSupport.scala +++ b/src/main/scala/net/yoshinorin/qualtet/http/MethodNotAllowedSupport.scala @@ -1,15 +1,15 @@ package net.yoshinorin.qualtet.http -import cats.effect.IO +import cats.Monad import org.slf4j.LoggerFactory import org.http4s.{Request, Response} import org.http4s.headers.Allow import org.http4s.dsl.io.* -trait MethodNotAllowedSupport { +trait MethodNotAllowedSupport[F[_]: Monad] { private[this] val logger = LoggerFactory.getLogger(this.getClass) - private[http] def methodNotAllowed(request: Request[IO], allow: Allow): IO[Response[IO]] = { + private[http] def methodNotAllowed(request: Request[F], allow: Allow) = { logger.error(s"method not allowed: ${request}") MethodNotAllowed(allow) } diff --git a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/ArchiveRoute.scala b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/ArchiveRoute.scala index 633ab9f5..095cec72 100644 --- a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/ArchiveRoute.scala +++ b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/ArchiveRoute.scala @@ -11,7 +11,7 @@ import net.yoshinorin.qualtet.syntax.* class ArchiveRoute[F[_]: Monad]( archiveService: ArchiveService[F] -) extends MethodNotAllowedSupport { +) extends MethodNotAllowedSupport[IO] { private[http] def index: HttpRoutes[IO] = HttpRoutes.of[IO] { r => implicit val x = r diff --git a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/ArticleRoute.scala b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/ArticleRoute.scala index 95256e0c..a7bbbf5e 100644 --- a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/ArticleRoute.scala +++ b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/ArticleRoute.scala @@ -11,7 +11,7 @@ import net.yoshinorin.qualtet.syntax.* class ArticleRoute[F[_]: Monad]( articleService: ArticleService[F] -) extends MethodNotAllowedSupport { +) extends MethodNotAllowedSupport[IO] { private[http] def index: HttpRoutes[IO] = HttpRoutes.of[IO] { r => implicit val x = r diff --git a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/AuthRoute.scala b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/AuthRoute.scala index 9ccfd360..07e3cb79 100644 --- a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/AuthRoute.scala +++ b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/AuthRoute.scala @@ -9,7 +9,7 @@ import net.yoshinorin.qualtet.auth.{AuthService, RequestToken} import net.yoshinorin.qualtet.http.{MethodNotAllowedSupport, RequestDecoder} import net.yoshinorin.qualtet.syntax.* -class AuthRoute[F[_]: Monad](authService: AuthService[F]) extends RequestDecoder with MethodNotAllowedSupport { +class AuthRoute[F[_]: Monad](authService: AuthService[F]) extends RequestDecoder with MethodNotAllowedSupport[IO] { private[http] def index: HttpRoutes[IO] = HttpRoutes.of[IO] { r => implicit val x = r diff --git a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/AuthorRoute.scala b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/AuthorRoute.scala index 1cb3b93c..b4f0cf8e 100644 --- a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/AuthorRoute.scala +++ b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/AuthorRoute.scala @@ -12,7 +12,7 @@ import net.yoshinorin.qualtet.http.MethodNotAllowedSupport class AuthorRoute[F[_]: Monad]( authorService: AuthorService[F] -) extends MethodNotAllowedSupport { +) extends MethodNotAllowedSupport[IO] { private[http] def index: HttpRoutes[IO] = HttpRoutes.of[IO] { r => implicit val x = r diff --git a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/CacheRoute.scala b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/CacheRoute.scala index c2b36751..ac4c3713 100644 --- a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/CacheRoute.scala +++ b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/CacheRoute.scala @@ -13,7 +13,7 @@ import net.yoshinorin.qualtet.http.{AuthProvider, MethodNotAllowedSupport} class CacheRoute[F[_]: Monad]( authProvider: AuthProvider[F], cacheService: CacheService[F] -) extends MethodNotAllowedSupport { +) extends MethodNotAllowedSupport[IO] { private[http] def index: HttpRoutes[IO] = authProvider.authenticate(AuthedRoutes.of { ctxRequest => (ctxRequest match diff --git a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/ContentRoute.scala b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/ContentRoute.scala index cea95156..e5b582e6 100644 --- a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/ContentRoute.scala +++ b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/ContentRoute.scala @@ -18,7 +18,7 @@ class ContentRoute[F[_]: Monad]( authProvider: AuthProvider[F], contentService: ContentService[F] ) extends RequestDecoder - with MethodNotAllowedSupport { + with MethodNotAllowedSupport[IO] { private[this] val logger = LoggerFactory.getLogger(this.getClass) diff --git a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/ContentTypeRoute.scala b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/ContentTypeRoute.scala index 334312b3..b2fcc314 100644 --- a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/ContentTypeRoute.scala +++ b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/ContentTypeRoute.scala @@ -12,7 +12,7 @@ import net.yoshinorin.qualtet.syntax.* class ContentTypeRoute[F[_]: Monad]( contentTypeService: ContentTypeService[F] -) extends MethodNotAllowedSupport { +) extends MethodNotAllowedSupport[IO] { private[http] def index: HttpRoutes[IO] = HttpRoutes.of[IO] { r => implicit val x = r diff --git a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/FeedRoute.scala b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/FeedRoute.scala index 6f6fc27a..58408ee4 100644 --- a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/FeedRoute.scala +++ b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/FeedRoute.scala @@ -12,7 +12,7 @@ import net.yoshinorin.qualtet.http.MethodNotAllowedSupport class FeedRoute[F[_]: Monad]( feedService: FeedService[F] -) extends MethodNotAllowedSupport { +) extends MethodNotAllowedSupport[IO] { private[http] def index: HttpRoutes[IO] = HttpRoutes.of[IO] { r => implicit val x = r diff --git a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/SearchRoute.scala b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/SearchRoute.scala index 46cf440c..59c143ae 100644 --- a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/SearchRoute.scala +++ b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/SearchRoute.scala @@ -12,7 +12,7 @@ import net.yoshinorin.qualtet.http.MethodNotAllowedSupport class SearchRoute[F[_]: Monad]( searchService: SearchService[F] -) extends MethodNotAllowedSupport { +) extends MethodNotAllowedSupport[IO] { private[this] val logger = LoggerFactory.getLogger(this.getClass) diff --git a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/SeriesRoute.scala b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/SeriesRoute.scala index e254076f..a5facb91 100644 --- a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/SeriesRoute.scala +++ b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/SeriesRoute.scala @@ -16,7 +16,7 @@ class SeriesRoute[F[_]: Monad]( authProvider: AuthProvider[F], seriesService: SeriesService[F] ) extends RequestDecoder - with MethodNotAllowedSupport { + with MethodNotAllowedSupport[IO] { // NOTE: must be compose `auth route` after `Non auth route`. private[http] def index: HttpRoutes[IO] = diff --git a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/SitemapRoute.scala b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/SitemapRoute.scala index 143af619..c5bcea62 100644 --- a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/SitemapRoute.scala +++ b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/SitemapRoute.scala @@ -9,7 +9,7 @@ import net.yoshinorin.qualtet.domains.sitemaps.SitemapService import net.yoshinorin.qualtet.syntax.* import net.yoshinorin.qualtet.http.MethodNotAllowedSupport -class SitemapRoute[F[_]: Monad](sitemapService: SitemapService[F]) extends MethodNotAllowedSupport { +class SitemapRoute[F[_]: Monad](sitemapService: SitemapService[F]) extends MethodNotAllowedSupport[IO] { private[http] def index: HttpRoutes[IO] = HttpRoutes.of[IO] { r => implicit val x = r diff --git a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/SystemRoutes.scala b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/SystemRoutes.scala index 8c1dd5c9..3c3e2a70 100644 --- a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/SystemRoutes.scala +++ b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/SystemRoutes.scala @@ -9,7 +9,7 @@ import net.yoshinorin.qualtet.ApplicationInfo import net.yoshinorin.qualtet.syntax.* import net.yoshinorin.qualtet.config.HttpSystemEndpointConfig -class SystemRoute(config: HttpSystemEndpointConfig) extends MethodNotAllowedSupport { +class SystemRoute(config: HttpSystemEndpointConfig) extends MethodNotAllowedSupport[IO] { private[http] def index: HttpRoutes[IO] = HttpRoutes.of[IO] { r => implicit val x = r diff --git a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/TagRoute.scala b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/TagRoute.scala index c928a204..bfb25449 100644 --- a/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/TagRoute.scala +++ b/src/main/scala/net/yoshinorin/qualtet/http/routes/v1/TagRoute.scala @@ -18,7 +18,7 @@ class TagRoute[F[_]: Monad]( authProvider: AuthProvider[F], tagService: TagService[F], articleService: ArticleService[F] -) extends MethodNotAllowedSupport { +) extends MethodNotAllowedSupport[IO] { private[this] val logger = LoggerFactory.getLogger(this.getClass)