From 77026a9cb0189f0865d1fb9f6e452790d20c2fdf Mon Sep 17 00:00:00 2001 From: Guntis Smaukstelis Date: Wed, 24 May 2023 16:01:48 +0300 Subject: [PATCH] Small fixes and cleanup --- src/main/scala/db/DBService.scala | 20 +++++++++----------- src/main/scala/fetch/FetchService.scala | 6 ++---- src/main/scala/parse/Main.scala | 2 +- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/main/scala/db/DBService.scala b/src/main/scala/db/DBService.scala index a0a49bf..73a6d72 100644 --- a/src/main/scala/db/DBService.scala +++ b/src/main/scala/db/DBService.scala @@ -21,17 +21,17 @@ object DBService { class DBService(log: Logger[IO]) { private val dateFormatter = DateTimeFormatter.ofPattern("yyyyMMdd_HHmm") private val dataPath = "./data" + private val nonDuplicatedLines = 34 // takes only first 34 lines of data as rest after 'Zosēni' is duplicated - // takes only first 34 lines of data as rest after 'Zosēni' is duplicated def readFile(fileName: String): IO[List[String]] = { val file = new File(dataPath, fileName) val sourceResource = Resource.fromAutoCloseable(IO(Source.fromFile(file))) - sourceResource.use(source => IO(source.getLines().take(34).toList)).handleErrorWith(_ => IO.pure(List.empty)) + sourceResource.use(source => IO(source.getLines().take(nonDuplicatedLines).toList)).handleError(_ => List.empty) } private def readFileNames(path: String): IO[List[String]] = IO(new File(path).listFiles.toList.map(_.getName)) - .handleErrorWith(_ => IO.pure(List.empty)) + .handleError(_ => List.empty) private def inRange(fileName: String, from: LocalDateTime, to: LocalDateTime): Boolean = { def fileToDateTime(fileName: String): Option[LocalDateTime] = { @@ -58,11 +58,9 @@ class DBService(log: Logger[IO]) { val path = Paths.get(s"$dataPath/$fileName") IO(Files.writeString(path, content)) .redeemWith( - error => IO(Left(error)) -// .flatTap(_ => log.error(s"Write file '$fileName' failed with error: ${error.getMessage}")) + error => IO(Left(error)) // <* log.error(s"Write file '$fileName' failed with error: ${error.getMessage}") , - _ => IO(Right(fileName)) -// .flatTap(_ => log.info(s"write: $fileName")) + _ => IO(Right(fileName)) // <* log.info(s"write: $fileName") ) } @@ -71,10 +69,10 @@ class DBService(log: Logger[IO]) { val formatter = DateTimeFormatter.ofPattern("yyyyMMdd") for { fileNames <- readFileNames(dataPath) - datesStr <- IO.pure(fileNames.map(_.take(8)).distinct) // take yyyyMMdd - dates <- IO.pure(datesStr.flatMap(str => { - Try(LocalDate.parse(str, formatter)).toOption - })) + datesStr <- IO(fileNames.map(_.take(8)).distinct) // take yyyyMMdd + dates <- datesStr.traverse { str => + IO(LocalDate.parse(str, formatter)).option + }.map(_.flatten) } yield dates.sorted } diff --git a/src/main/scala/fetch/FetchService.scala b/src/main/scala/fetch/FetchService.scala index eab823a..1dddd34 100644 --- a/src/main/scala/fetch/FetchService.scala +++ b/src/main/scala/fetch/FetchService.scala @@ -42,11 +42,9 @@ class FetchService(fileNameService: FileNameService, log: Logger[IO]) { val request = Request[IO](Method.GET, url).withHeaders(Authorization(basicCredentials)) client.expect[String](request).redeemWith( - error => IO(Left(error)) -// .flatTap(_ => log.error(s"Request failed to url: $url with error: ${error.getMessage}")) + error => IO(Left(error)) // <* log.error(s"Request failed to url: $url with error: ${error.getMessage}") , - fileContent => IO(Right((fileName, fileContent))) -// .flatTap(_ => log.info(s"Fetched: $fileName")) + fileContent => IO(Right((fileName, fileContent))) // <* log.info(s"Fetched: $fileName") ) } diff --git a/src/main/scala/parse/Main.scala b/src/main/scala/parse/Main.scala index 9d9d195..41e02d5 100644 --- a/src/main/scala/parse/Main.scala +++ b/src/main/scala/parse/Main.scala @@ -23,7 +23,7 @@ object Main { log <- Slf4jLogger.create[IO] dbService <- DBService.of lines <- dbService.getInRange(from, to) - parsed <- IO.pure(Parser.queryData(userQuery, lines)) + parsed <- IO(Parser.queryData(userQuery, lines)) _ <- log.info(parsed.asJson.toString) } yield () }