Skip to content

sigurdthor/forex-mtl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

forex-mtl

Forex is a simple application that acts as a local proxy for getting exchange rates

It can be executed by following instructions:

  • Sbt run(from root directory)
sigurd@sigurd:~/projects/forex-mtl> sbt run 

Launched server will listen localhost on 8080 port. You can use curl to make requests e.g.

sigurd@sigurd:~/projects/forex-mtl> curl localhost:8080/rates/convert/from/USD/to/EUR

Note: to handle Github API rate limit restriction set environment variable FOREX_TOKEN as following:

sigurd@sigurd:~/projects/forex-mtl> FOREX_TOKEN=2c30c4fa74eba4f181245bbb5ab0acacac18eccd; export FOREX_TOKEN_TOKEN

Functional side of the project is powered by ZIO and ZIO Layers. scalacache library is used to provide caching capabilities. Kaffeine cache implementation is used by default but it's possible to switch on Redis, memcache or other appropriate caching solution.

TODO:

  • make sophisticated error handling in http4s routes layer(DONE)
  • make host and port in service url configurable(DONE)
  • finish http routes functional test

Possible further improvements:

  • write json decoding unit tests
  • write integration tests(testcontainers)
  • use tapir for http4s endpoints
  • get rid of Future transformations dealing with memoizeF
  • use sttp instead of http4s-client

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages