DBService object to class with logger injection
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user