about summary refs log tree commit diff
path: root/kittybox-rs/src/database/mod.rs
Commit message (Collapse)AuthorAgeFilesLines
* Implement Postgres backendVika2023-07-091-0/+29
| | | | | | | A single giga-commit that took me weeks to produce. I know, this is not exactly the best thing ever β€” but I wanted to experiment first before "committing" to the implementation, so that I would produce the best solution.
* database{,/file}: clean up code, add documentation and loggingVika2023-07-091-126/+107
| | | | | | | | | | | | `filter_post` is now out of here and moved into the frontend. This kind of non-intrusive filtering can be done on the frontend, and the database need not concern itself with this. It can still be done as an optimisation... probably? but the frontend is going to sanitize things like location in the post by itself now, so it is not required anymore (and might be harmful, if frontend starts indicating that there are some hidden fields by replacing them with placeholders that ask one to log in to view information).
* micropub: use the new, better typed updates internallyVika2023-07-011-5/+6
|
* database: more realistic pagination testVika2023-06-221-1/+7
| | | | | | We insert published time into all objects anyway, and expect feeds to be ordered by publishing time. We should let databases rely on that assumption when returning feeds.
* database: add add_to_feed and remove_from_feedVika2023-06-221-0/+8
| | | | | Some database backends may have optimized ways of tracking feed contents. Others might just use the "children" property directly.
* database: use domains instead of authorities as owner keyVika2023-06-221-6/+6
| | | | | This allows disregarding http/https comparisons and simplifies some database designs.
* database: introduce read_feed_with_cursorVika2023-06-221-1/+9
| | | | | read_feed_with_cursor allows using an arbitrary string as a cursor, unlike read_feed_with_limit, which uses last post's UID as a cursor.
* StorageError: use std::borrow::Cow for msg fieldVika2023-06-221-7/+21
| | | | | This allows avoiding an unnecessary allocation whenever the error message is static.
* Add support for the IndieWeb Webring πŸ•ΈπŸ’Vika2023-06-151-0/+20
| | | | Optional at first. Onboarding UI not yet exposed.
* Database: use newtypes to represent settingsVika2023-06-151-19/+73
| | | | This allows much for a cleaner and idiomatic settings interface.
* tempfile -> tempdir, remove mockitoVika2023-02-271-1/+1
|
* kittybox-templates: split out MF2 rendering and get rid of log crateVika2022-07-271-1/+1
| | | | | Kittybox now uses tracing instead of log. Why would I keep an unneccesary dependency in my Cargo.lock?
* database: use .path().to_path_buf() to prevent dropping the tempdirVika2022-07-101-1/+3
| | | | | I'm afraid this might've caused me to do some weird stuff with the tempdir. Better do it like this.
* treewide: rewrite using AxumVika2022-07-071-41/+61
| | | | | | | | | | | | | | Axum has streaming bodies and allows to write simpler code. It also helps enforce stronger types and looks much more neat. This allows me to progress on the media endpoint and add streaming reads and writes to the MediaStore trait. Metrics are temporarily not implemented. Everything else was preserved, and the tests still pass, after adjusting for new calling conventions. TODO: create method routers for protocol endpoints
* flake.nix: reorganizeVika2022-05-241-0/+539
- Kittybox's source code is moved to a subfolder - This improves build caching by Nix since it doesn't take changes to other files into account - Package and test definitions were spun into separate files - This makes my flake.nix much easier to navigate - This also makes it somewhat possible to use without flakes (but it is still not easy, so use flakes!) - Some attributes were moved in compliance with Nix 2.8's changes to flake schema