Commit Graph

14 Commits

Author SHA1 Message Date
Paul van Tilburg e5e006dc00
Bump the version to 0.2.1 2022-05-08 14:02:47 +02:00
Paul van Tilburg 5d37c5b5ee
Bump the version to 0.2.0 2022-05-07 21:55:03 +02:00
Paul van Tilburg 7feae97ee2
Bump dependencies; cargo update 2022-05-07 20:21:09 +02:00
Paul van Tilburg 32964cea21
Add basic top-level tests
This starts to address #14 but didn't turn into a full MR yet.

* Use crates `assert_float_eq` and `assert_matches` for extra assertions
* Split off a function to build a Rocket `rocket()` that can be used
  in the tests
2022-03-11 16:03:56 +01:00
Paul van Tilburg 65a4420191
Bump dependency; cargo update
Bump the dependency on `cached` to 0.32.0 (fixes documentation)
2022-02-26 09:36:15 +01:00
Paul van Tilburg 512f170804 Bump dependencies; cargo update
* Bump the dependency on `image` to 0.24.1 (PNG bugfix)
* Bump the dependency on `cached` to 0.31.0 (I/O caching support?)
2022-02-25 15:26:44 +01:00
Paul van Tilburg 8d19dbb517
Implement caching for provider get requests (closes: #2)
* Also cache address geocoding requests to OSM Nomatim!
* Use the `cached` crate for an easy implementation
* Add the `cache_key` helper function to deal with floats being annoying
* Cache Buienradar get request for 5 minutes (per position/metric)
* Cache Luchtmeetnet get request for 5 minutes (per position/metric)
* Note the `Item` structs need to implement `Clone` now because
  the cache will own them and Rocket will want a copy too
2022-02-14 21:06:31 +01:00
Paul van Tilburg 79dac18655
Parse Buienradar as CSV file using serde
* Add the `csv` crate as a dependency
* Use the `Row` struct as intermediate object
* Turn the `parse_value` function into the `convert_value` function that
  cannot fail
2022-02-13 16:46:02 +01:00
Paul van Tilburg 6279d379ab
Add the Buienradar provider 2022-02-13 15:38:17 +01:00
Paul van Tilburg 9b9b1a5f77
Refactor so that no static is necessary for the maps cache
* Replace the lazy `once_cell` by a maps handle type
* Use Rocket's managed state to manage a handle
* Ensure that the handlers have access to it
* Pass another handle to the maps updater loop
* Try to keep the lock as short as possible

Still, long downloads block the lock. Add a FIXME to refactor this
so the lock is only taken when updating the maps fields.
2022-02-12 21:35:58 +01:00
Paul van Tilburg 72fe9577bd
Implement retrieving and caching maps 2022-02-12 21:08:13 +01:00
Paul van Tilburg d058ab4448
Set up a global maps (cache) object 2022-02-12 17:20:36 +01:00
Paul van Tilburg b5dae45868
Create maps cache and run its task next to Rocket 2022-02-12 17:12:06 +01:00
Paul van Tilburg 0b5e980f04
Initial import into Git 2022-02-12 15:03:00 +01:00