DBService object to class with logger injection

This commit is contained in:
Guntis Smaukstelis
2023-05-20 20:20:14 +03:00
parent 9241277b7f
commit bbdfaa06d8
6 changed files with 43 additions and 27 deletions
+14 -12
View File
@@ -6,19 +6,21 @@ import fetch.{FetchService, FileNameService}
object Main extends IOApp {
def run(args: List[String]): IO[ExitCode] = {
// TODO looks like fetchTask fails server if no csv on meteo server
val fetchTask = FileNameService.generateCurrentHour.flatMap(FetchService.fetchSingleFile)
val scheduler = Scheduler.scheduleTask(fetchTask)
.evalMap { case (name, content) =>
IO(println(s"fetched: $name")) *>
DBService.save(name, content).attempt.flatMap {
case Right(savedName) => IO(println(s"File saved: $savedName"))
case Left(err) => IO(println(s"Error: $err"))
}
}.compile.drain // Convert Stream[IO, Unit] to IO[Unit]
for {
dbService <- DBService.of
fetchTask = FileNameService.generateCurrentHour.flatMap(FetchService.fetchSingleFile)
scheduler = Scheduler.scheduleTask(fetchTask)
.evalMap { case (name, content) =>
IO(println(s"fetched: $name")) *>
dbService.save(name, content).attempt.flatMap {
case Right(savedName) => IO(println(s"File saved: $savedName"))
case Left(err) => IO(println(s"Error: $err"))
}
}.compile.drain // Convert Stream[IO, Unit] to IO[Unit]
val server = Server.run // This is an IO[Server]
server = Server.run // This is an IO[Server]
(server, scheduler).parMapN((_, _) => ExitCode.Success)
exitCode <- (server, scheduler).parMapN((_, _) => ExitCode.Success)
} yield exitCode
}
}