Commit Graph

177 Commits

Author SHA1 Message Date
kozabrada123 53f08ff1f9 add some tests, minor connection updates
- Document that create_domain_connection is unimplemented on Spacebar

- Add Discord connection type

- Change ConnectionType::array() into ConnectionType::vector() - returning a fixed size array is dubious, since it'll likely be expanded. Returning a vector is easier keep up to variable length

- Add ConnectionType::discord_vector() and ConnectionType::spacebar_vector() to return a vector ConnectionTypes available on the respective server backends

- add tests test_modify_user_profile, test_disable_user, test_get_user_note, test_set_user_note, test_get_user_affinities, test_get_guild_affinities, test_get_connections

Note: connections are hard to test, since they require secrets / an external service's account
2024-08-21 18:26:11 +02:00
kozabrada123 2f2407467e add test for get_user_profile 2024-08-18 14:50:13 +02:00
kozabrada123 5d0a65a9a9 feat: delete and disable user endpoints 2024-07-29 09:23:09 +02:00
bitfl0wer f0fc6eab4d
Fix testcase that relied on false behavior implemented by older spacebar servers 2024-07-24 15:55:49 +02:00
bitfl0wer 491cd255de
Add one BILLION derives 2024-07-18 23:04:35 +02:00
bitfl0wer 7554f90187
Replace `Observer` and `GatewayEvent` with `pubserve` crate 2024-07-13 14:28:22 +02:00
Quat3rnion 39e7f89c78
Backend/guilds (#509)
* Fix SQL encode/decode for GuildFeatures

* Use distinct PermissionFlags type

* Add Emoji schema types, modify GuildBan with feature lock

* Add Schemas for pruning guild members

* Add schemas for interfacing with stickers backend routes

* Add schemas for interfacing with vanity-url backend routes

* Add schema for interfacing with guilds/id/welcome-screen route

* Make all Option<Vec> types Vec types with #[serde(default)]

* Add various types to support guilds/* api routes

* Add missing enums and structs for searching messages

* Use proper distinct types

* Add EmbedType enum

* Use distinct PermissionFlags type

* Changes supporting backend for VoiceState

* Changes supporting backend for AuditLog's
2024-06-27 08:45:51 +02:00
kozabrada123 89333d6353
Implement gateway options, zlib-stream compression (#508)
* feat: add GatewayOptions

* feat: implement zlib-stream compression

This also changes how gateway messages work.
Now each gateway backend converts its message into an
intermediary RawGatewayMessage, from which we inflate
and parse GatewayMessages.

Thanks to ByteAlex and their zlib-stream-rs crate, which
helped me understand how to parse a compressed websocket stream
2024-06-23 17:23:13 +02:00
Quat3rnion b4a8082f29
Update and add some types in support of the backend (#507) 2024-06-19 19:59:39 +02:00
Quat3rnion c27bc8d575 Fix test
I feel silly.
2024-06-18 05:34:03 -04:00
Quat3rnion 6261cebfdf Fix test 2024-06-18 05:03:55 -04:00
kozabrada123 eb087938ed
Fix some iso timestamps being strings, not DateTime<Utc> (#499)
* fix: some iso timestamps being strings

* fix: register uses dates, not datetimes
2024-06-03 07:32:11 +02:00
kozabrada123 b2fd3e18cc Move Shared<T> to types/mod.rs, bump some dependencies (#492)
* deps: bump rustls to 0.21.11

This is done to fix CVE-2024-32650, which practically shouldn't affect
us but it's still better not to use vulnerable dependencies.

* deps: bump h2 to 0.3.26

This is done to fix another vulnerability, which should also not affect
us (non-critical, in h2 servers)

* fix: move Shared<T> to types/mod.rs
2024-04-28 14:15:57 +02:00
kozabrada123 74d6785e50 Primitive voice implementation (feature/voice) (#457)
* Add Webrtc Identify & Ready

* Add more webrtc typings

* Attempt an untested voice gateway implementation

* fmt

* Merge with main

* Same allow as for voice as normal gateway

* Test error observer

* Minor updates

* More derives

* Even more derives

* Small types update

* e

* Minor doc fixes

* Modernise voice gateway

* Add default impl for voicegatewayerror

* Make voice event fields pub

* Event updates via the scientific method

* ??

* Fix bad request in voice gateway init

* Voice gateway updates

* Fix error failing to 'deserialize' properly

* Update voice identify

* Clarify FIXME related to #430

* Update to v7

* Create seperate voice_gateway.rs and voice_udp.rs

* Restructure voice to new module

* fix: deserialization error in speaking bitflags

* feat: kinda janky ip discovery impl

* feat: return ip discovery data + minor update

* feat: packet parsing!

* fix: voice works again

* feat: add voice_media_sink_wants

(comitting uncommited changes to merge)

* chore: rename events/webrtc to events/voice_gateway

* Add UdpHandle

* chore: clippy + other misc updates

* fix: attempt to fix failing wasm build

* chore: yes clippy, that is indeed an unneeded return statement

* feat: add VoiceData struct

* feat: add VoiceData reference to UdpHandler

* feat: decryption?

* chore: formatting

* feat: add ssrc definition (op 12)

* feat: add untested sending & asbtract nonce generation

* feat: Public api! (sorta)

* small updates

* feat: add sequence number

* chore: yes

* feat: merge VoiceHandler into official development

* chore: yes clippy, you are special

* fix: duplicated gateway events

* feat: first try at vgw wasm compat

* fix: blunder

* fix: gateway connect using wrong url

* fix: properly using encrypted data, bad practice for buffer creation

* chore: split voice udp

* feat: udp error handling, create udp/backends

* fix: its the same

* chore: clarify UDP on WASM

* api: split voice gateway and udp features, test for voice gateway in WASM

* feat: new encryption modes, minor code quality

* docs: document voice encryption modes

* chore: unused imports

* chore: update getrandom version to match wasm version

* chore: update on packet size FIXME

* drop buf asap

* Okay can't do that actually

* tests: add nonce test

* normal tests work?

* docs: fix doc warning, fix incorrect refrences to 'webrtc'

* chore: json isn't a doc test

* tests: better gateway auth test

* testing tests

* update voice heartbeat, fix the new test issue

* committed too much

* fix: unused import

* fix: use ip discovery address as string, not as Vec<u8>

* chore: less obnoxious logging

* chore: better unimplemented voice modes handling

* chore: remove unused variable

* chore: use matches macro

* add voice examples, make gateway ones clearer

* rename voice example

* chore: remove unused VoiceHandler

* fix: implement gateway Reconnect and InvalidSession

* Typo

Co-authored-by: Flori <39242991+bitfl0wer@users.noreply.github.com>

* Fix a bunch of typos

Co-authored-by: Flori <39242991+bitfl0wer@users.noreply.github.com>

* fix: error handling while loading native certs

* fix: guh

* use be for nonce bytes

* fix: refactor gw and vgw closures

* remove outdated docs

---------

Co-authored-by: Flori <39242991+bitfl0wer@users.noreply.github.com>
2024-04-16 17:18:21 +02:00
Flori 64feb91680 License change (#477) 2024-01-31 23:59:42 +01:00
Dirk Stolle c5bfac66e5 Fix a few typos (#471) 2024-01-31 22:27:53 +01:00
bitfl0wer b8ba92cf07 Include license header everywhere 2024-01-30 17:19:34 +01:00
bitfl0wer 153bfc26c9 Add comment about test_self_updating_structs 2024-01-24 23:02:16 +01:00
bitfl0wer 9168e5b904 extend self updating structs test 2024-01-24 23:01:38 +01:00
bitfl0wer 9eb6260728 remove hit limit test 2024-01-24 18:51:10 +01:00
bitfl0wer b6f5d93e66 Add test for get_limit_config 2024-01-24 12:32:08 +01:00
bitfl0wer 764f86731d Add test to hit ratelimit 2024-01-24 12:21:46 +01:00
bitfl0wer a564293fef Add Message PartialEq Test 2024-01-23 23:42:00 +01:00
bitfl0wer 96ef83270b Add partial_eq test for relationship.rs/Relationship 2024-01-23 23:31:35 +01:00
bitfl0wer fcd405939f Add to_public_user test 2024-01-23 23:06:24 +01:00
bitfl0wer 713f9d7846 Add unit tests for guild.rs entities 2024-01-23 21:13:15 +01:00
bitfl0wer f17fcb3c2c Create tests from to_str and from_str for GuildFeatures 2024-01-23 20:50:19 +01:00
bitfl0wer 0a0e6c3ffe write unit tests for config and entities 2024-01-22 20:57:29 +01:00
bitfl0wer b521928f81 Make IntoShared trait with blanket implementation 2024-01-22 14:56:23 +01:00
bitfl0wer c4bea069b7 Fix errors by moving into_shared out of Composite 2024-01-22 14:50:33 +01:00
bitfl0wer b5923c30e2 Replace Arc, Rwlock with Shared 2024-01-21 20:24:17 +01:00
bitfl0wer 400d4c74cf Rename to_shared to into_shared 2024-01-21 17:10:24 +01:00
bitfl0wer 39b1f1fa72 Replace use of Arc<RwLock<T>> with Shared<T> 2024-01-21 17:07:19 +01:00
bitfl0wer 1c4721a70f Refactor instance creation 2023-12-15 00:10:33 +01:00
bitfl0wer f5774ae047 Remove "limited" parameter 2023-12-03 21:34:44 +01:00
bitfl0wer 0125c38bd0 Rename from_root_domain to from_root_url 2023-12-03 13:39:23 +01:00
bitfl0wer 1a52975dbd Add test if an example well-known response gets parsed correctly. 2023-12-03 13:33:24 +01:00
bitfl0wer b246e08aca Write test to check basic functionality of UrlBundle::from_root_domain() 2023-12-03 13:29:38 +01:00
bitfl0wer 7ef61eb317 Add Default, Hash, etc. where needed 2023-12-02 17:35:47 +01:00
bitfl0wer 83b8d7a6cd Remove "prettyfyme" -> solved 2023-11-22 20:54:51 +01:00
bitfl0wer dd01ef0c35 Add tests for coverage 2023-11-22 18:48:44 +01:00
bitfl0wer 9ad01cd227 Token login test 2023-11-22 18:38:23 +01:00
bitfl0wer c5e6c0b800 Add tests for GatewayMessage to increase coverage 2023-11-22 16:34:43 +01:00
bitfl0wer bdb505218c Add fixme note about tests requiring std::fs 2023-11-22 14:52:49 +01:00
bitfl0wer 38c95255c5 Replace #[tokio::test] w/ wasm-ok macro calls 2023-11-22 14:39:32 +01:00
bitfl0wer 0cae35e592 Remove broken test code 2023-11-22 14:24:10 +01:00
bitfl0wer 69f726af0e Fix formatting in test functions 2023-11-20 14:36:00 +01:00
bitfl0wer 37f3bcde94 Rename test function to
generate_general_configuration_schema_wasm
2023-11-20 14:22:00 +01:00
bitfl0wer cfe4078639 Remove unnecessary code 2023-11-20 14:15:23 +01:00
bitfl0wer 0cdb76bcf3 remove all .await from wasm tests 2023-11-20 14:11:56 +01:00