The badges_id field has proved to bubble up some issues with updating deep structures
Basically this just means that feature branches for deep features like this are a good idea
! Issue: RTC feature flag was working fine but without the feature flag `Row`'s had no pickup
This meant correct responses were slipping into previously unreachable sections of code
With this frontend points now return proper data structures which of course contain
badge_id vectors
Along with defaulting to '[]' strings in mysql configuration serde_json calls
now fallback to .unwrap_or(Vec::new()) for cheapish callbacks.
These fallback calls are cheap because Vec::new doesn't allocate anything on the heap
because they're empty.
This is really only for check if a particular channel exists for /messages/recent's backend
* Flattening db-lib::Message::last_n
SHould make code more readable as it now has a more linear flow
* api::Messages::recent_messages now 404's when a channel that doesn't exist is request
This is more heavily used in Message::send as a way of discerning "real" server errors
from those that are caused by user input. The name itself might not be super fitting either
* Moving code for inserting textual messages into its own function
This splits up the logic a bit for Message::send but this segment of logic is also
much simpler than that of file upload
* Flattening Message::send overall
Keeping this function as flat as can be is crucial as it is one of the heavier+most
important funcs in the whole JSON API codebase
Files are now also generated correctly and asynchronously
! 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
➕ /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>