@@ -3,6 +3,7 @@ package com.fortyseven.client
3
3
import cats .effect .{Effect , IO , Timer }
4
4
import com .fortyseven .commons ._
5
5
import com .fortyseven .commons .config .ServiceConfig
6
+ import com .fortyseven .protocol .implicits ._
6
7
import fs2 .{Stream , StreamApp }
7
8
import io .chrisdavenport .log4cats .Logger
8
9
import monix .execution .Scheduler
@@ -13,13 +14,15 @@ class ClientProgram[F[_]: Effect: Logger] extends AppBoot[F] {
13
14
14
15
implicit val TM : Timer [F ] = Timer .derive[F ](Effect [F ], IO .timer(S ))
15
16
16
- override def appStream (config : ServiceConfig ): fs2.Stream [F , StreamApp .ExitCode ] =
17
+ override def appStream (config : ServiceConfig ): fs2.Stream [F , StreamApp .ExitCode ] = {
17
18
for {
18
19
serviceApi <- SmartHomeServiceApi .createInstance(config.host.value, config.port.value)
19
20
_ <- Stream .eval(serviceApi.isEmpty)
20
21
summary <- serviceApi.getTemperature
21
22
_ <- Stream .eval(Logger [F ].info(s " The average temperature is: ${summary.averageTemperature}" ))
22
- } yield StreamApp .ExitCode .Success
23
+ response <- serviceApi.comingBackMode(LocationsGenerator .get[F ])
24
+ } yield response.actions
25
+ }.to(LogSink [F ].showLines).drain.as(StreamApp .ExitCode .Success )
23
26
}
24
27
25
28
object ClientApp extends ClientProgram [IO ]
0 commit comments