start_time >= end_time
Which means we won't get weird requests from clients anymore(hopefully)
* Route handler for /message/time_range now handles db::Response::RestrictedInput
Responds with a simple 400 and nothing else
Should make it more dsecriptive with really weird input and prevent even more confusing 500 responses to the client
+ db-lib::Channels::add now also potentially returns this new RestrictedInput variant
! I should note that there are two things which are incomplete
1. channel deletion with linked messages
2. Invites module has not been refactored BUT behaves beautifully in all tests so far so i cba
Also is a lot more straight forward to use as it basically return Response::Success and Other in case of issue
Member::update_perms now a thing which is again pasted from previously working code and uses Result<_, _> return types so we can ? everywhere
$ Using ? is basically a try so latency should be reduced in this method
src/channels.rs/ : simple log of sql error to stderr
main.rs : swapped secret and name parameters as they were backwards somehow (tfw cant type)
src/messages.sr : more clerical shit(mispelled parameter name) and logging sql to stderr
Points of interest in this changelog are below:
* Finally using the db library with full integrations in userland channels
* Removed db_types altogether, now using db-lib's version of it
* Auth now also does queries using db-lib, which of course reduces eye strain when looking through that mess
* Userland channels is midly tested so I'm somewhat comfortable for now
* Userland invites still works but should now be trivial to changeover
* db-lib also includes tons more documentation which should make it easier to reason why it does certain things
New testing suite with python also makes writing unit tests stupid easy and is now qol update territory
Here's a contemporary list of things that at this point are simply nice to have:
* Better output from the python testing suite, green/red text and whatnot to more easily skim results
* Better logging overall on the test suite
* More robust error handling in db-lib however ALL the information regarding errors IS getting through to userland and IS handleable
This concern is more about code expressiveness and not really required at all (yet I hope)
Depdendancies:
* Using serde whereever possible since the old serialization methods were super sketchy
* No more .common module
* No more .db_types module
SQL:
Made it easier to purge channels and also fixed some _edgy_ features
like `unique` being inlined and not use at the end of a create table clause
Auth:
* Much cleaner managemetn of `if let` expressions and `matches`
They used to be all over the place but reduction of checks has fixed this mostly
* Now also uses the new db-lib which reduces a ridiculous amount of code
! We do this because in order to `get` the channel later we need its id.
Some clients will be updating channel data periodically so this helps to make smaller queries possible