+ New notify driver function which does the network magic we need
+ Adding event emitters for the following events
"delete-channel"
"create-channel"
"update-nick"
+ Server claims are now also generated per request so this could get some benefit from caching the jwt
One idea is to cache a jwt for a temporary amount of time
+ event! macro also lets us generate json payloads more easily
! Still requiring this module to built under an optional feature however that should be done easily
This version comes with the benefit of having much more concise exec_map functionality among other things
This commit and the following ones also move db-lib to using a more 'try' based approach
+ Rtc server takes in new-message correctly but with basically no ux/auth for now
This should be fine as we can layer on security afterwards with no issue
* Renamed db helper function to be (debatably) more clear in its intentions
That function and everything in that module is quickly become awful however
+ Adding some notes for later db-lib development
! Initial id size will stay as u64 but u128 are easily the next major change
This change shouldn't break clients written in high level languages since most already use 128's under the hood anyway
- This commit also removes the auto_increment flag from basically everything that uses RNG id's
! Requirements for variable message fetching not yet met
! /message/get?id=<id> needs a way of passing back file contents
! The file upload is sketchy at best and not necessarily guaranteed to sync the
database with the file system
* Fixed weird match with get_online_members
+ Now using special(smoll) Public Member struct for public member data fetches as.
They're size on networks should be pretty small so we can package a ton of them in a single request
DOCS changes:
- Removing references to unix timestamps in seconds
- Removing references to joindate
* Exact content-type values now specified
+ Auth module now uses std::time for time based calculations
! All time notations are i64 and rounded to the Millisecond
* Moving db pool to a lazy static to avoid constructing a whole pool on every request
+ Adding more logging per request, even if its lazy logging
* Content-Types are now correctly written per type
Removig chrono from api code as well
Removing chrono as dep in api code
+ Using Content-Type for /message/send content type
Updating cargo lists for removal of fluff deps
Removal of more fluff
Addking makefile to avoid compiling debug builds by accident while developing
➕ /channels/list now takes a "type" parameter which defaults to TEXT_CHANNEL(1)
✨ Refactoring db::Channel::filter to use a more latency friendly approach
✨ db::Channel::Filter now returns Result<Response<Self>, SqlError>
➕ Moving Messages struct in db-lib to root for less namespacing uglyness
➖ Removing an whole unused trait
✨ Message::get_time_range now returns a special 'UserMessage' struct that includes the name of the author
❗ More code must be removed from db-lib since a ton of the trait methods aren't used anymore
* Adding endpoint docs and correcting some typesetting mistakes
* Change qs params to match documentation
* Splitting up articles to geneate the sidebar links properly'
* Bad baseurl issue fixed in previous patch
Link: https://docs.rs/urldecode/0.1.1/src/urldecode/lib.rs.html#1-21
Why rob? Well its slightly modified(very smol change) in that it now takes a &str and allocates a string from it
Later patches will change this so that we don't _always_ allocate frivolously
* payloads for things like /message/send are now send through the request body
* no longer sending body data in gets
This whole patch is basically so we can allow js clients to exist btw -_-
* cleaned up wall of parameter parsing to be less cancerous(read diff to die instantly)
- Removed repeated db::Response in response mutator match
Simplified how parameters are parsed by making them actually readable