Skip to content

Commit 2a77441

Browse files
committed
WIP new client build
1 parent c35bd6f commit 2a77441

File tree

14 files changed

+139
-337
lines changed

14 files changed

+139
-337
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
*
3+
* scala-exercises - evaluator-client
4+
* Copyright (C) 2015-2019 47 Degrees, LLC. <http://www.47deg.com>
5+
*
6+
*/
7+
8+
package org.scalaexercises.evaluator
9+
10+
import cats.Monad.ops.toAllMonadOps
11+
import cats.effect.{ExitCode, IO, IOApp}
12+
import cats.syntax.applicative.catsSyntaxApplicativeId
13+
14+
object ClientApp extends IOApp {
15+
16+
val validToken: String =
17+
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eW91ciBpZGVudGl0eQ.cfH43Wa7k_w1i0W2pQhV1k21t2JqER9lw5EpJcENRMI"
18+
19+
val req = EvalRequest(Nil, Nil, "{ 1 + 1 }")
20+
21+
override def run(args: List[String]): IO[ExitCode] =
22+
EvaluatorClient[IO]("http://127.0.0.1:8080/eval", validToken)
23+
.evaluates(req)
24+
.map(println(_)) *> ExitCode.Success.pure[IO]
25+
26+
}

client/src/main/scala/org/scalaexercises/evaluator/Decoders.scala

Lines changed: 0 additions & 23 deletions
This file was deleted.

client/src/main/scala/org/scalaexercises/evaluator/EvaluatorAPI.scala

Lines changed: 0 additions & 21 deletions
This file was deleted.

client/src/main/scala/org/scalaexercises/evaluator/EvaluatorClient.scala

Lines changed: 10 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,38 +7,21 @@
77

88
package org.scalaexercises.evaluator
99

10-
import cats.data.EitherT
11-
import cats.~>
12-
import cats.implicits._
13-
import org.scalaexercises.evaluator.EvaluatorResponses.{
14-
EvalIO,
15-
EvaluationException,
16-
EvaluationResponse,
17-
EvaluationResult
18-
}
19-
import org.scalaexercises.evaluator.free.algebra.EvaluatorOp
20-
21-
import scala.concurrent.Future
22-
import scala.concurrent.ExecutionContext.Implicits.global
23-
24-
class EvaluatorClient(url: String, authKey: String) {
10+
import cats.effect.{ConcurrentEffect, Resource}
11+
import org.http4s.client.Client
12+
import org.http4s.client.blaze.BlazeClientBuilder
13+
import org.scalaexercises.evaluator.service.{HttpClientHandler, HttpClientService}
2514

26-
lazy val api: EvaluatorAPI[EvaluatorOp] = new EvaluatorAPI(url, authKey)
15+
import scala.concurrent.ExecutionContext
2716

28-
}
17+
case class EvaluatorClient(url: String, authKey: String)
2918

3019
object EvaluatorClient {
3120

32-
def apply(url: String, authKey: String) =
33-
new EvaluatorClient(url, authKey)
34-
35-
implicit class EvaluationIOSyntaxEither[A](evalIO: EvalIO[EvaluationResponse[A]]) {
36-
37-
def exec(implicit I: (EvaluatorOp ~> Future)): Future[EvaluationResponse[A]] =
38-
evalIO foldMap I
21+
private def clientResource[F[_]: ConcurrentEffect]: Resource[F, Client[F]] =
22+
BlazeClientBuilder[F](ExecutionContext.global).resource
3923

40-
def liftEvaluator: EitherT[EvalIO, EvaluationException, EvaluationResult[A]] =
41-
EitherT[EvalIO, EvaluationException, EvaluationResult[A]](evalIO)
24+
def apply[F[_]: ConcurrentEffect](url: String, authKey: String): HttpClientService[F] =
25+
HttpClientHandler[F](url, authKey, clientResource[F])
4226

43-
}
4427
}

client/src/main/scala/org/scalaexercises/evaluator/EvaluatorResponses.scala

Lines changed: 0 additions & 62 deletions
This file was deleted.

client/src/main/scala/org/scalaexercises/evaluator/api/Evaluator.scala

Lines changed: 0 additions & 35 deletions
This file was deleted.

client/src/main/scala/org/scalaexercises/evaluator/free/algebra/EvaluatorOps.scala

Lines changed: 0 additions & 41 deletions
This file was deleted.

client/src/main/scala/org/scalaexercises/evaluator/free/interpreters/Interpreter.scala

Lines changed: 0 additions & 32 deletions
This file was deleted.

client/src/main/scala/org/scalaexercises/evaluator/http/HttpClient.scala

Lines changed: 0 additions & 38 deletions
This file was deleted.

client/src/main/scala/org/scalaexercises/evaluator/http/HttpRequestBuilder.scala

Lines changed: 0 additions & 46 deletions
This file was deleted.

client/src/main/scala/org/scalaexercises/evaluator/implicits.scala

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)