Commit Graph

59 Commits

Author SHA1 Message Date
shockrah
feef6104c6 * Changed a local var MAX to a const module level alias MAX_MESSAGES
+ Adding limiter to get_time_range
2021-01-23 15:14:15 -08:00
shockrah
01320899a3 Base implementation of new /message/from_id route
! Requires unit testing
! Written with max response length in mind, (still ignores mem limits howevr)
2021-01-19 22:26:53 -08:00
shockrah
3b3fa14496 * Db::Messages::get_time_range now handles case where
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
2021-01-19 19:43:21 -08:00
shockrah
5c4bc6f96f Updated /message/get_time to pass client api testing 2021-01-18 23:28:32 -08:00
shockrah
b917483dac * Upated message struct initialization to shorthand (cosmetic thing
* Updated message struct to use channel_id not _name

+ Base implementation f Message::get_time_range, yet to be tested
2021-01-18 22:00:24 -08:00
shockrah
dfe53b323e /messages/send now correctyl tells the user they're wrong about sendingmessages to a non-existant channel 2020-12-30 01:00:47 -08:00
shockrah
477be1fd3f Members now debugable 2020-12-29 23:51:14 -08:00
shockrah
549c69f668 + Added Response::RestrictedInput to db-lib
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
2020-12-29 23:50:57 -08:00
shockrah
b351f63db5 db-lib now attempts to update tokens from failed update_jwt call 2020-12-28 23:03:13 -08:00
shockrah
9d01912670 Adding hook for getting jwt from login
Also missed a lazy_static removal in db-lib
2020-12-28 21:57:47 -08:00
shockrah
967782be5f Movng back to mysql from redis due to tokio reactor errors
At some point we should try moving to redis for better cache performance but that change is massive and this works at least as a poc
2020-12-28 21:53:57 -08:00
shockrah
55ade005a2 Removing fluff dependancies from db-lib: lazy_static + jsonwebtoken 2020-12-28 21:52:49 -08:00
shockrah
c0f5908089 Tiny auth module for literally just redis and jwt things
Also we're doing a really budget version of sessions here so we might change things later but this is fine for now
2020-12-22 21:30:35 -08:00
shockrah
9a3833ea49 sample .env now uses redis
Also I'm moving the redis deps to db-lib
Lazy static now added for the sake of holding the only static ref we need/want
the hmac secret
2020-12-22 21:28:38 -08:00
shockrah
b15277348f Better docs inspired jsdocs in db-lib::Member::add 2020-11-21 13:20:46 -08:00
shockrah
571f3a1630 db-lib::Channel::delete now gives back the actual sql error on failure 2020-11-18 00:28:08 -08:00
shockrah
159262a1f6 Merging cargo fixes from db-interface 2020-11-17 23:47:30 -08:00
shockrah
eaec922693 New dependancies
Fixing a bunch of things that cargo complains about but that really has no effect on me as a person
2020-11-17 23:46:03 -08:00
shockrah
e4fdf4feb7 Merging new db-lib code integration
! 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
2020-11-17 22:51:59 -08:00
shockrah
56041c1da5 db-lib::Member::Update no longer does 2 network hits
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
2020-11-17 22:29:58 -08:00
shockrah
7c41db0648 updated dependancies for db-lib so that serde::Serialize works as intended
Also added a macro arm to sql_err which allows for the passing of SqlError Objects through
2020-11-17 22:27:28 -08:00
shockrah
751b947bef db/src/channels.rs/ : Clerical error fix in Response::Other<String> message
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
2020-11-17 00:08:13 -08:00
shockrah
cfc060b645 Member::add now supported however its up to the user of db-lib to create the secret(ideally one that doesn't suck)
Literally pasted from the old version which proved to be working to I'm calling this one half way done
2020-11-16 22:57:46 -08:00
shockrah
a9fafa8fdc casting to avoid calamity with signedness memes 2020-11-16 22:56:56 -08:00
shockrah
c78c8a5502 First pass build of messages::send functionality 2020-11-12 13:16:50 -08:00
shockrah
3925e2c57f adding chrono to cargo.toml in db-lib 2020-11-12 13:15:24 -08:00
shockrah
a9c55bac90 New dependancy for db-lib chrono
! Used in messages module
2020-11-12 13:11:00 -08:00
shockrah
2330f47558 Merging in for the newly updated channels user module
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
2020-11-07 21:44:38 -08:00
shockrah
4668ce7d0f Channel add behavior now also returns the same new channel that was just added
! 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
2020-11-07 18:26:19 -08:00
shockrah
ec30e80ac1 Invites::filter 1st pass implementation
! untested
2020-11-04 00:33:35 -08:00
shockrah
960abac7d9 DbInvites .filter method
! untested
2020-11-04 00:19:35 -08:00
shockrah
562377d6e2 1st pass implementation of the new .filter implementation
! Totally untested so far and WILL have to go through a battery of tests before I'm confident with this
2020-11-03 23:37:14 -08:00
shockrah
8ce88faa78 new filtertype parameter is being given for our .filter method 2020-11-03 23:36:13 -08:00
shockrah
f9bc6b3dc9 channels modules have newly updated list endpoints
/channels/create requires a rework however
2020-11-03 23:16:24 -08:00
shockrah
188184460f Adding serde to db libraries list of deps 2020-11-03 21:44:23 -08:00
shockrah
06c81ce2f2 Removal of unused code or things that were trivial to switch to the library like db types 2020-11-02 00:11:15 -08:00
shockrah
543feef330 Foreign keys in messages now delete when parent key is deleted 2020-11-01 22:33:25 -08:00
shockrah
4cb8f578ed new test for deleting channels
-x- this test will fail but the patch is required for testing self hosting our code base
2020-10-28 22:31:52 -07:00
shockrah
b008a0d3e1 * Removed 'unused import' warning
+ Added library crate level docs to channels module
Should hopefully make things easier
2020-10-21 22:39:16 -07:00
shockrah
75eac74f3f forgot to expose modules for use as external crate 2020-10-10 19:53:33 -07:00
shockrah
65532def98 added delete method for messages 2020-09-17 21:54:54 -07:00
shockrah
2642fdb8b3 adding wrapper for messages 2020-09-17 21:51:23 -07:00
shockrah
51ca960dbb made private members public 2020-09-17 21:03:30 -07:00
shockrah
5950f3b505 added ded simple delete interface for channels 2020-09-17 20:10:14 -07:00
shockrah
e616a160fa proper query for invites::update hehexd 2020-09-17 20:06:34 -07:00
shockrah
b673fc6ca1 better formatted error messages
also reworked error messages so they create Strings and dont use `&'static str`'s anymore
2020-09-17 20:05:33 -07:00
shockrah
5e48fa1ab9 update method now written should build fine 2020-09-17 19:40:54 -07:00
shockrah
d08ae63f50 new macro to make error reporting a bit clearer 2020-09-17 19:35:22 -07:00
shockrah
471639a635 file for channels db api 2020-09-17 18:55:27 -07:00
shockrah
d6571b17ca exposing invites struct as public 2020-09-17 15:04:23 -07:00