Commit Graph

864 Commits

Author SHA1 Message Date
bitfl0wer 38d9c3ad03
Change test_registration 2023-05-09 19:30:52 +02:00
bitfl0wer 8b09d16542
Make register and login return UserObject 2023-05-09 17:19:41 +02:00
bitfl0wer 478313507f
Extend UserObject to match with Spacebars' User 2023-05-09 17:19:23 +02:00
bitfl0wer d8c8cd079b
remove println 2023-05-09 17:19:04 +02:00
bitfl0wer 0ba2f568fd
impl get_settings() 2023-05-09 14:05:36 +02:00
bitfl0wer 5971ce1dbc
Make register and login return User 2023-05-09 14:05:03 +02:00
bitfl0wer 15ee53b5f4
Made modules public, removed 110 warnings 2023-05-09 14:04:46 +02:00
bitfl0wer 59be7b1cde
Removed empty lines of code 2023-05-09 14:04:34 +02:00
bitfl0wer 702cafc0f5
make token pub 2023-05-09 13:10:07 +02:00
kozabrada123 d1e8cb2d5c Less spam debug log 2023-05-07 12:44:11 +02:00
bitfl0wer 11be031e98
Remove logged_in from User 2023-05-07 12:42:52 +02:00
bitfl0wer 54944fbb0e
Run clippy 2023-05-07 12:41:14 +02:00
bitfl0wer 8f3912c277
Remove unneccessary imports 2023-05-07 12:39:56 +02:00
bitfl0wer b2fa6db492
Remove lifetime from Instance (see below)
Originally, it was planned, that the Instance object would store Users. I have identified, that this was not needed, as it goes beyond the scope of a library; Users of this library are expected to keep track of users themselves. The removal of this user storage also prevented further overcomplications.
2023-05-07 12:39:04 +02:00
kozabrada123 ebab5d4433 Was still a merge conflict there 2023-05-07 12:05:58 +02:00
kozabrada123 f14b7c0e49 Fix merge conflict 2023-05-07 12:04:46 +02:00
kozabrada123 ea6bacd7b8 Rethink websockets, fix thread blocks 2023-05-07 11:58:12 +02:00
bitfl0wer 50ecc78da0
add docs, add instance.get_user() 2023-05-07 11:54:49 +02:00
kozabrada123 d4a546efa3 Fix deserialization error 2023-05-07 11:47:12 +02:00
bitfl0wer 6b4251a3aa
Remove display impl, add default trait 2023-05-07 11:32:25 +02:00
bitfl0wer 014583216a
Impl user::get() function 2023-05-07 11:32:11 +02:00
bitfl0wer 45e8fe6953
add test fn 2023-05-07 00:18:21 +02:00
bitfl0wer c1bcd169f1
add users to mod.rs 2023-05-07 00:18:14 +02:00
bitfl0wer 621b05570a
remove nesting layer 2023-05-07 00:18:06 +02:00
bitfl0wer 222a552017
Add users to mod.rs 2023-05-07 00:17:54 +02:00
bitfl0wer 46a5f08b33
add pronouns 2023-05-06 22:47:31 +02:00
bitfl0wer eb131be83b
add mod.rs 2023-05-06 22:47:26 +02:00
bitfl0wer 0e5a9caa44
Implement message sending (without attachments) 2023-05-06 22:24:23 +02:00
bitfl0wer f067826889
change visibilities 2023-05-06 22:23:48 +02:00
bitfl0wer c3cab53804
impl SendMessageSchema 2023-05-06 22:23:34 +02:00
bitfl0wer b1b684e3b5
rename user rate_limits to limits for consistency 2023-05-06 18:52:24 +02:00
bitfl0wer 40bb3c38e9
Construct new message send method basics 2023-05-06 18:52:09 +02:00
bitfl0wer b041433865
change message to messagesendschema 2023-05-06 18:34:38 +02:00
kozabrada123 4cfcf859a3 Add a debug to heartbeat thread 2023-05-06 11:14:38 +02:00
kozabrada123 4dd44efa38 Pub mod everything so it can be used as a library 2023-05-06 11:13:07 +02:00
kozabrada123 45a2dc0b2b Update Websocket to fix premature closing w 1006 2023-05-06 10:39:58 +02:00
kozabrada123 1f8a38545b Update types to fix deserialization errors 2023-05-06 10:39:16 +02:00
kozabrada123 d4be173854 Slight code cleanup 2023-05-06 08:39:41 +02:00
kozabrada123 8414bbb1c2 Fixed instance lifetime parameter 2023-05-05 22:46:00 +02:00
kozabrada123 bc3e93ce5a Readd gateway to instance 2023-05-05 22:04:57 +02:00
bitfl0wer fa0d74e9dd
remove redundant code 2023-05-05 22:00:37 +02:00
bitfl0wer bae45254fe
start re-doing send() 2023-05-05 21:53:23 +02:00
bitfl0wer 1076c23403
Add DiscordFileAttachment, change visibilities 2023-05-05 21:53:00 +02:00
bitfl0wer 7a8eedd4c0
Add MessageSendSchema 2023-05-05 21:52:27 +02:00
kozabrada123 18590ff075 Fix encoding wrong 2023-05-05 20:58:00 +02:00
kozabrada123 867da4fd31 Remove the dumb test stuff I left in 2023-05-05 20:28:47 +02:00
kozabrada123 f612345484 Give websocket a send and receive channel 2023-05-05 20:26:51 +02:00
kozabrada123 ae062dfc17 Add temp debug, remove unused token 2023-05-05 19:42:31 +02:00
kozabrada123 9015538af5 Experimental sending to gateway 2023-05-05 19:23:57 +02:00
kozabrada123 50c4c1a542 Experimental heartbeats 2023-05-05 18:38:04 +02:00
kozabrada123 4446aef8e1 Update integers on some types 2023-05-05 18:37:52 +02:00
kozabrada123 c57122a94b Add gateway Ready event 2023-05-05 16:08:12 +02:00
kozabrada123 07e500d063 Update data for existing events 2023-05-05 15:46:45 +02:00
kozabrada123 0f4e623acd No need to serialize this 2023-05-05 15:39:11 +02:00
bitfl0wer cdc3836177
handle attachment-messages seperately 2023-05-05 14:38:37 +02:00
bitfl0wer e749251529
change name type from String to i16 2023-05-05 14:38:22 +02:00
bitfl0wer 2940b50f1b
Fix counter not being incremented 2023-05-05 14:19:38 +02:00
bitfl0wer 164bd627b0
Change HashMap to Map
Filenames can be non-unique, which could not be accurately represented using a HashMap.
2023-05-05 14:18:59 +02:00
bitfl0wer 5bf09a997c
Add new() DiscordFileAttachment 2023-05-05 14:16:09 +02:00
bitfl0wer fb6e0a21ec
Rename File to DiscordFileAttachment, work on that 2023-05-04 23:00:48 +02:00
kozabrada123 f3f0619d3f Add basic event receiving 2023-05-04 20:57:45 +02:00
kozabrada123 f5502a8121 Add WebSocketConnection to Gateway 2023-05-04 20:05:33 +02:00
bitfl0wer dcee25a2a2
Add bearer auth for message sending 2023-05-03 23:13:12 +02:00
bitfl0wer ab17d864ba
Add start of attachments implementation 2023-05-03 23:04:32 +02:00
bitfl0wer c2801acfdb
Remove unused imports 2023-05-03 21:06:01 +02:00
bitfl0wer fc5a053888
fix build fail by commenting out unused stuff 2023-05-03 21:05:09 +02:00
bitfl0wer 66ab87db30
Merge remote-tracking branch 'origin/feature/sending-messages' 2023-05-03 17:39:57 +02:00
bitfl0wer 809702bc1d
change reference to be mutable 2023-05-03 17:29:32 +02:00
bitfl0wer 98bf70ec5e
add send_message to user 2023-05-03 17:29:20 +02:00
bitfl0wer 5e399dba26
Add get_as_mut to Limits 2023-05-03 17:12:32 +02:00
bitfl0wer 94fa84cabe
Remove blank line 2023-05-03 17:12:23 +02:00
bitfl0wer d216ef6179
change visibilities to pub 2023-05-03 17:11:48 +02:00
bitfl0wer 685fe3ff1a
cargo clippy --fix 2023-05-03 16:38:42 +02:00
bitfl0wer 7445f1efc7
Add lifetime to Instance 2023-05-03 16:37:10 +02:00
bitfl0wer 13815e73a1
Add Message send() 2023-05-03 16:27:04 +02:00
bitfl0wer 375ea3e035
Start working on message send body 2023-05-03 15:55:01 +02:00
bitfl0wer f1aef5df02
Add message.rs 2023-05-03 15:45:07 +02:00
Flori dc57ef7fc5
Merge pull request #25 from polyphony-chat/feature/sending-messages
Bring main up to date
2023-05-02 22:51:49 +02:00
bitfl0wer 6015afd49b
Add messages.rs to implement messages features 2023-05-02 22:46:41 +02:00
bitfl0wer eb98f1374c
add GatewayPayload 2023-04-30 21:54:15 +02:00
bitfl0wer c6e6f34be3
add example threaded websocketconnection 2023-04-30 14:45:15 +02:00
bitfl0wer 76c4981cf8
Get GatewayHello from Stream 2023-04-30 12:17:35 +02:00
bitfl0wer 19a3e3af20
Add TLS support to WS connection 2023-04-30 11:56:14 +02:00
bitfl0wer 85913ce66d
Add types for Heartbeat and Hello (Gateway) 2023-04-30 11:48:53 +02:00
bitfl0wer 4956e44c0a
implement Gateway::new() 2023-04-28 23:21:55 +02:00
bitfl0wer 8cded33eda
Make GatewatIdentifyPayload pub 2023-04-28 20:30:03 +02:00
bitfl0wer 37ad29f698
Working on Gateway impl 2023-04-28 20:29:40 +02:00
bitfl0wer 82f1b3dcc1
Add Default derives to types 2023-04-28 18:18:32 +02:00
bitfl0wer 530c0deb36
Add documentation comments 2023-04-28 13:40:29 +02:00
bitfl0wer 29a7dba439
renamed mod to example 2023-04-28 12:39:58 +02:00
bitfl0wer 50b6029f54
Implement Observer for WebSocketEvents 2023-04-28 12:31:59 +02:00
bitfl0wer 8f97b48a09
Add error type for Observers 2023-04-27 22:38:57 +02:00
bitfl0wer 656acad356
Indicate that method call can fail 2023-04-27 22:38:41 +02:00
bitfl0wer 77ff7d6510
Update observer implementation 2023-04-27 22:29:07 +02:00
bitfl0wer 155a27d49d
start implementing ovserver 2023-04-27 17:57:10 +02:00
bitfl0wer 8a7d61804f
add GatewayResume 2023-04-25 23:06:16 +02:00
bitfl0wer 534d32b1bc
add more types 2023-04-25 22:34:43 +02:00
bitfl0wer dee8c0bb4e
add typing start event 2023-04-25 22:08:09 +02:00
bitfl0wer b8cc81d8c1
Add more Types 2023-04-25 22:03:25 +02:00
bitfl0wer 48add97e79
metric ton of types for message deserialization 2023-04-25 21:42:46 +02:00
bitfl0wer c7afd81d80
Fix error due to deletion of impl::Display 2023-04-25 21:42:11 +02:00
bitfl0wer 36b6be5788
Merge remote-tracking branch 'origin/main' into feature/gateway-observer 2023-04-25 18:00:44 +02:00
bitfl0wer 7cb77bae0f
Improve readability 2023-04-25 17:41:14 +02:00
bitfl0wer 9dad307b71
Improve readability 2023-04-25 17:33:35 +02:00
bitfl0wer e52a646054
Split up schemas.rs 2023-04-25 17:32:30 +02:00
bitfl0wer 87d9d14047
Add dependencies 2023-04-25 17:21:27 +02:00
bitfl0wer 792a06f408
separate User and Instance limits. 2023-04-24 20:58:45 +02:00
bitfl0wer d9857180e9
Give each user their own rate limits 2023-04-24 19:51:35 +02:00
bitfl0wer c9d5bb8b6e
Merge remote-tracking branch 'origin/main' into improvement/update-rate-limiter-implementation 2023-04-24 19:50:36 +02:00
bitfl0wer 17eab8169e
Change HashMap<> to Limits 2023-04-24 19:49:26 +02:00
bitfl0wer 3e9aebf7ee
Implement Limits::new() and more logic 2023-04-24 19:38:42 +02:00
bitfl0wer eea118b623
Create internal User and API UserObject 2023-04-23 21:32:48 +02:00
bitfl0wer 2880097cb2
comment out test until spacebar pr is merged 2023-04-23 20:21:36 +02:00
bitfl0wer f3f70ba131
Implement Login 2023-04-23 20:11:14 +02:00
bitfl0wer fc4a0a4533
make compiler happy 2023-04-23 14:01:02 +02:00
bitfl0wer d9c82d5bfa
start working on login 2023-04-23 14:00:27 +02:00
bitfl0wer cfed349c03
Make send_request return Result 2023-04-23 13:58:17 +02:00
bitfl0wer 82bfec0612
Made test pass 2023-04-23 13:45:52 +02:00
bitfl0wer d1d8b6f237
Add documentation 2023-04-23 12:06:51 +02:00
bitfl0wer 1e00296dc9
Made AuthEmail, Password and Username reusable 2023-04-23 11:58:45 +02:00
bitfl0wer 2e52fb71d4
Register function with good errors! 2023-04-22 22:12:56 +02:00
bitfl0wer fbfa4fda94
push progress 2023-04-22 11:32:44 +02:00
bitfl0wer d67cedc847
Remove boilerplate errors 2023-04-21 23:20:23 +02:00
bitfl0wer b18e38a5fc
impl register 2023-04-21 18:20:57 +02:00
bitfl0wer 1418b67921
add error 2023-04-21 18:20:49 +02:00
bitfl0wer f96bcb87f6
Move custom errros to central file 2023-04-21 16:18:20 +02:00
bitfl0wer 552b43f80b
Replace Custom Error boilerplate with macro 2023-04-21 15:04:58 +02:00
bitfl0wer fff71f0529
create errors.rs 2023-04-21 14:30:10 +02:00
bitfl0wer 950eba2ae7
Add TODO 2023-04-21 14:30:03 +02:00
bitfl0wer ff6874abcb
Fix bad build 2023-04-21 14:27:56 +02:00
bitfl0wer 4f745c958c
Have AuthRegister and AbsoluteRegister cancel each other out 2023-04-20 20:11:12 +02:00
bitfl0wer 897df7adce
Change comment 2023-04-20 19:47:20 +02:00
bitfl0wer e43b3934e4
Improve limit check 2023-04-20 19:47:08 +02:00
bitfl0wer 27c111fd99
begin working on register 2023-04-20 00:14:11 +02:00
bitfl0wer 8666aa34e5
add users hashmap 2023-04-19 23:32:02 +02:00
bitfl0wer 9e10ce05a9
add await to fix test error 2023-04-19 20:58:14 +02:00
bitfl0wer bc3083bcf6
add additional documentation and TODO 2023-04-19 20:42:28 +02:00
bitfl0wer 33b5d6d57c
create new() method 2023-04-19 20:42:11 +02:00
bitfl0wer 1d25fdffcb
Include new file 2023-04-19 20:41:52 +02:00
bitfl0wer 32f1365a54
make progress on instance object creation 2023-04-19 20:41:33 +02:00
bitfl0wer f45193fc40
implement getting InstancePoliciesSchema
Co-authored-by: sky <skyrina@users.noreply.github.com>
2023-04-19 20:41:15 +02:00
bitfl0wer 7528a8eccd
remove token check, add username impl 2023-04-17 22:38:21 +02:00
bitfl0wer 38e3ee3afa
add Token struct and impl 2023-04-17 21:31:15 +02:00
bitfl0wer 0f424a9c53
start working on register 2023-04-16 23:03:24 +02:00
bitfl0wer 5e3fb77911
add gateway object 2023-04-16 23:03:12 +02:00
bitfl0wer 52c2bce5d3
use camel case 2023-04-16 22:50:51 +02:00
bitfl0wer 32ef8ee5b1
remove impl LoginSchema, add InstancePolicies 2023-04-16 22:18:51 +02:00
bitfl0wer d4bf540203
Add PartialEq and Eq derives 2023-04-16 22:16:39 +02:00
bitfl0wer 4b129ee6a3
Rename client to instance 2023-04-16 22:16:22 +02:00
bitfl0wer 4d10710f4f
add auth module 2023-04-16 15:07:15 +02:00
bitfl0wer 157b351db9
reformat file 2023-04-16 14:55:13 +02:00
bitfl0wer e919e71819
Added email regex validation and tests 2023-04-16 14:09:23 +02:00
bitfl0wer 76dd665e91
Implement LoginSchema 2023-04-16 13:41:26 +02:00
bitfl0wer d6ae03b656
add comment 2023-04-16 12:33:57 +02:00
bitfl0wer 746299c029
Write test to check consent validation 2023-04-16 12:32:49 +02:00
bitfl0wer 4e9854d46e
write tests to check username validation 2023-04-16 12:30:30 +02:00
bitfl0wer 062faf8c07
add tests to confirm password validation 2023-04-16 12:26:12 +02:00
bitfl0wer 40425fc282
add "new" method for RegSchema with custom errors 2023-04-15 22:06:18 +02:00
bitfl0wer 28d03b9c9f
Add TotpSchema 2023-04-15 21:20:32 +02:00
bitfl0wer 3957d23c53
Update RegisterSchema, add LoginSchema 2023-04-15 21:16:47 +02:00
bitfl0wer c5a4a56022
create RegisterSchema 2023-04-15 21:12:33 +02:00
bitfl0wer ca988d93aa
create schemas.rs 2023-04-15 20:16:18 +02:00
bitfl0wer 673ddd5c8d
add test_send_request 2023-04-15 18:16:26 +02:00
bitfl0wer e4ba507ace
add limit updates for Error, Global, Ip
Despite Error, Global and Ip technically being handled seperately, we still need to update their "reset" and "limit" values to match what the API tells us.
2023-04-15 17:12:33 +02:00
bitfl0wer 77d5349231
remove unneccessary variable 2023-04-15 17:09:42 +02:00
bitfl0wer 992b803548
add add_remaining
add_remaining() adds an i64 to the interal "remaining: u64" with underflow protection.
2023-04-15 17:08:19 +02:00
bitfl0wer 427ce0541e
update internal values through mut ref 2023-04-15 17:07:46 +02:00
bitfl0wer 1a398fecd7
add fallback if no rate limit header received 2023-04-15 14:55:50 +02:00
bitfl0wer 384d42e877
Derive PartialEq and Eq to use assertEq in tests 2023-04-15 13:54:57 +02:00
bitfl0wer a8a4da36c7
add test which checks instance rate limits working 2023-04-15 13:54:33 +02:00
bitfl0wer 5130846c7f
rename tests 2023-04-15 13:27:43 +02:00
bitfl0wer 84258ec8da
Fix incorrect url formatting, add more tests 2023-04-15 13:27:34 +02:00
bitfl0wer d60711a5d1
Fixed goofy ahh way to remove a slash from the end of the url 2023-04-15 13:03:51 +02:00
bitfl0wer 9855efe15e
Derive Debug, start debugging 2023-04-14 23:38:36 +02:00
bitfl0wer 965308e746
add documentation 2023-04-14 23:01:48 +02:00
bitfl0wer 88987e6bfb
make send_request return Option<Response> 2023-04-14 22:40:13 +02:00
bitfl0wer ce21a8539d
add send_request method 2023-04-14 22:22:23 +02:00
bitfl0wer 112f44e224
Derive copy trait 2023-04-14 22:22:11 +02:00
bitfl0wer d8dd2010a3
add new struct, send_request and can_send_request 2023-04-14 18:29:20 +02:00
bitfl0wer 1b71c63b1c
reduce code complexity& duplication, fix oversight 2023-04-14 17:11:13 +02:00
bitfl0wer 2e964145bd
reduce code duplication 2023-04-14 17:09:50 +02:00
bitfl0wer 04d03e1d3c
handle resetting rate limits 2023-04-14 16:56:54 +02:00
bitfl0wer db61974e26
implement update limits 2023-04-12 22:59:08 +02:00
bitfl0wer e7756ede4f
change return type from Limits to HashMap 2023-04-12 22:18:20 +02:00
bitfl0wer bceff7dbe5
make code compile 2023-04-12 18:34:20 +02:00
bitfl0wer 8622849ef8
add update_limits (TODO) and add_to_queue 2023-04-12 18:33:16 +02:00
bitfl0wer 252697144f
impl display for limittype, add limittype 2023-04-12 18:32:49 +02:00
bitfl0wer 58c5025afe
add .iter() to Limits 2023-04-12 18:18:55 +02:00
bitfl0wer ccff2b73c6
Optimize imports, allow dead code where needed 2023-04-12 17:10:12 +02:00
bitfl0wer bb9575211a
refactor limit.rs, moved some logic 2023-04-12 16:49:18 +02:00
bitfl0wer 5e408bf4d2
me when i write bad code 2023-04-12 15:49:12 +02:00
bitfl0wer 484a6fb24e
Add todo 2023-04-11 21:27:37 +02:00
bitfl0wer 36ead61f09
fix can_send_request 2023-04-11 21:27:06 +02:00
bitfl0wer ecb1fb0e53
add TODO comment 2023-04-10 21:02:29 +02:00
bitfl0wer f44bba82a5
add can_send_request, update_limits and send_requests 2023-04-10 20:58:07 +02:00
bitfl0wer be5546e809
Add docstring, rename var 2023-04-10 17:35:04 +02:00
bitfl0wer 4b4860590b
remove tests, reformat limit display, rename limit 2023-04-10 17:30:02 +02:00
bitfl0wer dee5fd4631
add: impl display for limit, check_limits 2023-04-10 17:20:02 +02:00
bitfl0wer 78856a2fcd
create new folder structure to map api routes 2023-04-10 14:19:31 +02:00
bitfl0wer 6ec87fc913
create test to... test 2023-04-10 14:18:48 +02:00
bitfl0wer 2829f2e2e0
Remove http 2023-04-10 14:18:33 +02:00
bitfl0wer 2011024771
clean match and replace it with .unwrap_or_else 2023-04-08 23:56:53 +02:00
bitfl0wer f3ee9b2dd6
get response body string out of result 2023-04-08 23:31:28 +02:00
bitfl0wer d7ce80ee62
add notes on what needs to be done. 2023-04-08 14:51:36 +02:00
bitfl0wer bfb63ddb2d
Use Vec<Limit> instead of Limit because there are multiple limits 2023-04-08 14:37:20 +02:00
bitfl0wer 3e84976256
add bucket identifiers, add check_limits stub 2023-04-07 23:22:44 +02:00
bitfl0wer 79cdc6e315
update use statement to match new name 2023-04-07 21:52:09 +02:00
bitfl0wer bddce47896
replace Box<> with VecDeque<> 2023-04-07 21:51:50 +02:00
bitfl0wer ea11db8460
start concepting/implementing RateLimiter 2023-04-07 21:01:48 +02:00
bitfl0wer f6930d3a38
Indicate that code block is of type Rust 2023-04-05 22:19:15 +02:00
bitfl0wer abcfb8801c
Create files 2023-04-05 21:55:27 +02:00
bitfl0wer af13830d99
Add url parser and tests 2023-04-05 21:54:27 +02:00
bitfl0wer 5e000afdc6
main -> lib 2023-04-04 17:37:11 +02:00
bitfl0wer 19ebda2887
cargo init 2023-04-04 16:42:20 +02:00