Invite::as_json_str/from_tuple changed to reflect new field changes
+ insert_new_invite: short and sweet error handling by the caller for now
* create_invite now named `create`
+ reduced code complexity in invites::create so its very straight forward to read(imo)
Secret is now checked against bcrypt, default cost now 13
New AuthReason::BadKey
Meant to give us more specific auth responses but main isn't dealing w/ it yet
More generally members now has a proper looking insert new member function
Added new combinational permision for basic users
Reworked DATBASE_URL initialization for the API's environment variable
Nearly there to conditionally running the server, only need to add one more guard
* send_message fails when a non-existant channel is specified
* send_message now works with existant channel
* send_message: notifies client of bad channel parameters
* send_message: sends a generic 500 on every other error
* create channel now responds correctly given various parameters
* insert channel now errors out properly with ? syntax
* new uses added to align with sql types
Base member creation being added in this commit notes to follow
struct Member has had its field types changed to db_types::* types
Member::to_json was added to support simple json serialization into responses
struct InsertableMember added because `id` is generated by SQL for us
- this means we have to do two queries 1 to insert and 2 to fetch
- mysql_async does not provide an inlined way of fetching a recently added row
func general_new_user is only checking for a `name`parameter
- falls back to a basic default name for those that don't set a name on jooin
- handles its own sub errors so the main dispatcher doesn't care about after move