WIP desktop client for Chatto reimplemented in ScalaFX and Sapphire Framework
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.1 KiB

4 years ago
  1. package wow.doge.chatto.service
  2. import scala.concurrent.ExecutionContext
  3. import scala.concurrent.ExecutionContext.Implicits.global
  4. import scala.async.Async.{async, await}
  5. import sttp.client.json4s._
  6. import org.json4s._
  7. import sttp.client._
  8. import scala.concurrent.Future
  9. import sttp.client.asynchttpclient.WebSocketHandler
  10. import javax.inject.Inject
  11. import scala.async.Async.{async, await}
  12. import scala.util.Success
  13. import scala.util.Failure
  14. import wow.doge.chatto.AppData
  15. import wow.doge.chatto.types.AppTypes.HttpBackend
  16. class UserService @Inject() (appData: AppData)(
  17. implicit backend: HttpBackend
  18. ) {
  19. private implicit lazy val serialization = org.json4s.native.Serialization
  20. def func1() = {
  21. val willBeResponse = basicRequest
  22. .get(uri"https://httpbin.org/get")
  23. .response(asJson[HttpBinResponse])
  24. .send()
  25. async {
  26. val r = await { willBeResponse }
  27. r.body.map(println)
  28. }
  29. }
  30. def func2() =
  31. basicRequest
  32. .get(uri"https://httpbin.org/get")
  33. .response(asJson[HttpBinResponse])
  34. .send()
  35. }
  36. case class HttpBinResponse(
  37. url: String,
  38. origin: String,
  39. headers: Map[String, String]
  40. )