Commit Graph

84 Commits

Author SHA1 Message Date
shockrah
3f1dfbf824 Adding rtc notifications to relevant endpoints
! Still need a feature flag to compile this optionally instead of all the time
- Removed warning in main's auth::login_get_jwt call
2021-04-02 13:56:44 -07:00
shockrah
be54ce6a57 - Removing Claim::new since its used once
+ New notify driver function which does the network magic we need
+ Adding event emitters for the following events
"delete-channel"
"create-channel"
"update-nick"
2021-04-02 13:55:21 -07:00
shockrah
17f281c91c Removing websocket library for tokio-tungstenite (rtc) 2021-04-02 12:29:53 -07:00
shockrah
e496fbdd1a Message event now asynchonously emitted from /message/send to rtc server
+ 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
2021-04-02 12:11:59 -07:00
shockrah
c6a49a8437 User JWT's now have nbf field in claims set in seconds 2021-04-02 12:06:17 -07:00
shockrah
afdeef0a49 More warning removals and more db-lib result wrapping
This should be everything now
2021-03-30 23:00:50 -07:00
shockrah
4615374357 Comfy dev scripts to make life a little bit easier 2021-03-30 22:49:46 -07:00
shockrah
c45f8d0482 More db-lib ok/err wrapping
Some misc changes that don't really belong with anything else are bundled here
Those changes aren't actually very important however
2021-03-30 22:46:59 -07:00
shockrah
75dcb7b73e No more jwt db checks
Also wrapping relevant db code with ok/err checks
2021-03-30 22:45:39 -07:00
shockrah
41202507c1 removing warning 2021-03-30 22:44:09 -07:00
shockrah
4cbbfdd7a2 mysql_async updates
* More shorthand usage for clearer code in invite create
2021-03-30 22:43:07 -07:00
shockrah
54f4dd53be - Removing non-result returns
+ Updating further for newest version of mysql_async
2021-03-30 22:42:34 -07:00
shockrah
fea94bffa0 Removing features flag from db-lib as its not needed 2021-03-30 21:41:57 -07:00
shockrah
15b56353b8 Removing passthrough for message send handler
This means we get more opaque errors for the clients but it also results in way less code to maintain
2021-03-30 21:39:44 -07:00
shockrah
d88948385d Upgrading mysql_async to latest version
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
2021-03-30 21:38:16 -07:00
shockrah
f7d90e4a09 - Removal of auth code in db-lib 2021-03-30 21:36:21 -07:00
shockrah
5bbc57313f + Json-API now pushes proper new-message event to rtc server correctly
+ 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
2021-03-25 20:46:10 -07:00
shockrah
52fab01119 + Clearer logging from the json api
* 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
2021-03-24 01:43:52 -07:00
shockrah
a1f86fdf6e * Moving away from auto_increment
! 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
2021-03-24 01:14:37 -07:00
shockrah
d02084a22c + Adding proper file upload support
! 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
2021-03-23 17:16:05 -07:00
shockrah
975acfd606 Backend REST API changes:
* 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
2021-03-20 22:44:22 -07:00
shockrah
03c41b6833 - Removed joindate from members schema
+ 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
2021-03-20 19:47:59 -07:00
shockrah
988aa9f155 Removal of chrono and async_trait as dependancy in db-lib
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
2021-03-20 14:59:06 -07:00
shockrah
9ce04e96a7 Query string parameter 'type' is now enforced by the api
+ Flag is literally called 'type'
2021-03-12 02:17:06 -08:00
shockrah
ddb08818b1 Updating schemas to support content_type 2021-03-09 00:03:12 -08:00
shockrah
ae675d000b content_type now a supported column in db-lib
 API layer now behaves as expected, returning 'content_type' flag with each message
2021-03-09 00:02:20 -08:00
shockrah
7125fc954d SERVER_PROTOCOL is now an official env variable for the json-api to read 2021-03-07 23:55:38 -08:00
shockrah
5fc3e2a553 /channels/create refactored to use the new db-lib api
 Reduced branching a shit ton

Testing was ass but it should pass client tests now, back to normal
2021-03-07 17:47:24 -08:00
shockrah
7c3537e4f6 Updated target for debugger
 Tests now use the new flags required for /channels/create
 Doubled size for channel descriptions
2021-03-07 17:46:17 -08:00
shockrah
fadc7d6dc1 Removing more unused trait methods in db-lib's channel module
 /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>
2021-03-07 14:26:50 -08:00
shockrah
12936d5b1a Removing double log issue with client-tester
 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
2021-03-07 13:29:10 -08:00
shockrah
a6e3f22eae Reverting package upgrades 2021-03-07 12:43:25 -08:00
shockrah
2fa77fecb1 Updating hyper and tokio to newest versions for better http2 support 2021-03-05 22:59:27 -08:00
shockrah
898a7a8ca2 New /members/single route
 Simple test for /members/single handler
 Should probably add some more tests to verify failure cases
2021-03-05 19:23:50 -08:00
shockrah
b999907540 * channels are now nested in "channels" key 2021-03-03 16:30:39 -08:00
shockrah
05acbfa94e Passing tests for invite routes 2021-02-25 16:05:46 -08:00
shockrah
212173f543 Fixing /join route, time check was backwards oops and it was set to GET not post 2021-02-25 15:31:45 -08:00
shockrah
ab1c9e40f7 Ower creation now gives back prettier output + server meta vars as well 2021-02-25 14:03:34 -08:00
shockrah
64125a7874 dumy test stats for no reason 2021-02-21 20:10:14 -08:00
shockrah
93fd8c2cd6 +Adding new tests for /members/me/nickname
* Fixed incorrect param key in endpoint handler
+Adding a ycm conf for easier writing
2021-02-21 18:52:35 -08:00
shockrah
5db976b9de + New route for /members/me/nickname
! No testing yet that comes in next patch, with any required fixes
+ db now has specific method for Member::update_nickk
2021-02-21 17:21:17 -08:00
shockrah
7263df8928 Adding new routes for /members/get_online & /members/me
Passing the previous tests as well
2021-02-20 20:15:43 -08:00
shockrah
34736bef3f updating tests for members routes 2021-02-20 20:14:10 -08:00
shockrah
c896870397 Reformatting of wiki:
* 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
2021-02-18 16:29:29 -08:00
shockrah
71ebefce51 Dummy commit 2021-02-13 19:08:21 -08:00
shockrah
da1b4c3253 Trivial change to test out new filtered pipeline 2021-02-13 19:00:22 -08:00
shockrah
4323156242 Building and testing against proper nginx setup now
! No longer pipeline ready because the docker image is out of date with this change
2021-02-11 22:28:20 -08:00
shockrah
9e70e7272b removing busted conf 2021-02-11 20:21:30 -08:00
shockrah
6bc8dd0d7d tests are now ran with https as we now use https with nginx as a frontend however:
The client tester is super scuffed and no longer in a pipeline ready state as a new docker image has to be created(again)
2021-02-11 20:06:56 -08:00
shockrah
fb36f70d95 Response logs now optionally show the query string when logging, defaulting to always show the logs for now however 2021-02-11 15:04:41 -08:00