commune-sh / commune-rs

Rust implementation of the Commune server.
https://commune.sh
Apache License 2.0
12 stars 3 forks source link

API Coverage list #43

Open ChurchOfTheSubgenius opened 8 months ago

ChurchOfTheSubgenius commented 8 months ago

I'm listing out all the API coverage on both the existing golang backend and the rust server. This list should help us understand where we're at regarding reaching feature parity with the golang backend.

Account route commune-server commune-rs
Create Account POST /account
Login POST /login
Logout GET /logout
Validate Session GET /account/session
Validate Token POST /account/token
Send Password Recovery Code POST /account/password
Verify Password POST /account/password/verify
Reset Password POST /account/password/reset
Update Password POST /account/password/update
Send Verifications Code POST /account/verify/code
Verify Code POST /account/verify
Verify Email POST /account/verify/email
Update Display Name POST /account/display_name
Update Avatar POST /account/avatar
Check Username Availability GET /username
Validate Email GET /email
User Feed route commune-server commune-rs
Fetch Feed Get /feed
Notifications route commune-server commune-rs
Fetch notifications GET /notifications
Sync notifications GET /notifications/sync
Mark Read POST /notifications/read
Public Spaces route commune-server commune-rs
Discover Public Spaces GET /discover
Fetch Public Spaces GET /public_spaces
Media route commune-server commune-rs
Presigned URL GET /media/presigned_url
Upload URL GET /media/upload_url
GIFs route commune-server commune-rs
search GIFs GET /gifs/search
Fetch GIF Categories GET /gifs
Links route commune-server commune-rs
Fetch Link Metadata GET /link/metadata
Events route commune-server commune-rs
Fetch All Events GET /events
Event route commune-server commune-rs
Create Event POST /event
Create State Event POST /event/state
Redact Event POST /event/redact
Redact Reaction Event POST /event/redact/reaction
Upvote Event PUT /event/upvote
Downvote Event PUT /event/downvote
Room route commune-server commune-rs
Fetch Room Messages GET /room/{room_id}/messages
Sync Room Messages GET /room/{room_id}/sync
Fetch Room Members GET /room/{room_id}/members
Room Join Status GET /room/joined
Join Room POST /room/join
Leave Room POST /room/leave
Join Room POST /room/join
Invite user to Room POST /room/{room_id}/invite/{user_id}
Space route commune-server commune-rs
Join Space POST /space/{space}/join
Leave Space POST /space/{space}/leave
Create Space POST /space/create
Create Space Room POST /space/room/create
Get Space Custom Emoji GET /space/emoji
Fetch Space Events GET /{space}/events
Fetch Space Room Events GET /{space}/{room_id}/events
Fetch Space State GET /{space}/state
Fetch Space Power Levels GET /{space}/power_levels
avdb13 commented 8 months ago

Thanks.

marceline-cramer commented 7 months ago

This looks great; very helpful for comparing/contrasting the codebases.

avdb13 commented 7 months ago

This looks great; very helpful for comparing/contrasting the codebases.

Indeed, The code is as stupidly simple as it can be except for the UIA bypass. It might be possible to move that up to the router as a middleware.

What are we doing at sync? I'm sure this requires some extra work on the router level.

avdb13 commented 7 months ago

A few comments: