From 04872bbc4d45e9c313dfcd67ddd4bf4a7c151a38 Mon Sep 17 00:00:00 2001 From: Guntis Smaukstelis Date: Mon, 24 Apr 2023 19:21:36 +0300 Subject: [PATCH] Take out IO from parser --- src/main/scala/parse/Main.scala | 28 +++++++++++++++++++++++++++ src/main/scala/parse/Parser.scala | 31 +++--------------------------- src/main/scala/server/Server.scala | 2 +- 3 files changed, 32 insertions(+), 29 deletions(-) create mode 100644 src/main/scala/parse/Main.scala diff --git a/src/main/scala/parse/Main.scala b/src/main/scala/parse/Main.scala new file mode 100644 index 0000000..5abf5dc --- /dev/null +++ b/src/main/scala/parse/Main.scala @@ -0,0 +1,28 @@ +package parse + +import cats.effect.IO +import cats.effect.unsafe.implicits.global + +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter + +object Main { + private def run: IO[Unit] = { + println("================ start parser") + + val formatter = DateTimeFormatter.ofPattern("yyyyMMdd_HHmm") + val from = LocalDateTime.parse("20230414_2200", formatter) + val to = LocalDateTime.parse("20230501_1230", formatter) + + for { + lines <- db.DBService.getInRange(from, to) + parsed <- IO.pure(Parser.queryData(lines, List("Liepāja", "Rēzekne", "randomstr"), AggregateMeteo.tempAvg)) + _ <- IO.println(parsed) + } yield () + } + + def main(args: Array[String]): Unit = { + run.unsafeRunSync() + } + +} diff --git a/src/main/scala/parse/Parser.scala b/src/main/scala/parse/Parser.scala index 7a98976..434ee98 100644 --- a/src/main/scala/parse/Parser.scala +++ b/src/main/scala/parse/Parser.scala @@ -1,8 +1,5 @@ package parse -import cats.effect.IO -import cats.effect.unsafe.implicits.global - import java.time.LocalDateTime import java.time.format.DateTimeFormatter import scala.util.Try @@ -58,34 +55,12 @@ object Parser { } } + // TODO move out def queryData( data: List[String], cities: List[String], aggregator: AggregateMeteo, - ): IO[Map[String, Double]] = { - for { - - weatherLines <- IO.pure(aggregateLines(data, cities, aggregator)) -// _ <- IO.println(weatherLines) - } yield weatherLines - } - - // TODO remove this. Just for testing - private def run: IO[Unit] = { - println("================ start parser") - - val formatter = DateTimeFormatter.ofPattern("yyyyMMdd_HHmm") - val from = LocalDateTime.parse("20230414_2200", formatter) - val to = LocalDateTime.parse("20230501_1230", formatter) - - for { - lines <- db.DBService.getInRange(from, to) - parsed <- queryData(lines, List("Liepāja", "Rēzekne", "randomstr"), AggregateMeteo.tempAvg) - _ <- IO.println(parsed) - } yield () - } - - def main(args: Array[String]): Unit = { - run.unsafeRunSync() + ): Map[String, Double] = { + aggregateLines(data, cities, aggregator) } } \ No newline at end of file diff --git a/src/main/scala/server/Server.scala b/src/main/scala/server/Server.scala index 0479bc3..a785f54 100644 --- a/src/main/scala/server/Server.scala +++ b/src/main/scala/server/Server.scala @@ -44,7 +44,7 @@ object Server extends IOApp { case Some((from, to, cityList, aggregate)) => { val res = for { lines <- db.DBService.getInRange(from, to) - parsedData <- parse.Parser.queryData(lines, cityList, aggregate) + parsedData <- IO.pure(parse.Parser.queryData(lines, cityList, aggregate)) } yield parsedData Ok(res.map(_.toString()))