docs: partially document codebase
All checks were successful
ci/woodpecker/push/build-and-publish Pipeline was successful

Should make it easier for frontend to figure out what stuff actually does, more will be added as the project goes on
This commit is contained in:
Radical 2025-05-27 11:52:17 +00:00
parent 1aa38631b8
commit 16ccf94631
10 changed files with 226 additions and 18 deletions

View file

@ -1,3 +1,5 @@
//! `/api/v1/servers/{uuid}/icon` icon related endpoints, will probably be replaced by a multipart post to above endpoint
use actix_web::{HttpRequest, HttpResponse, put, web};
use futures_util::StreamExt as _;
use uuid::Uuid;
@ -10,6 +12,11 @@ use crate::{
utils::get_auth_header,
};
/// `PUT /api/v1/servers/{uuid}/icon` Icon upload
///
/// requires auth: no
///
/// put request expects a file and nothing else
#[put("{uuid}/icon")]
pub async fn upload(
req: HttpRequest,

View file

@ -1,3 +1,5 @@
//! `/api/v1/servers/{uuid}` Specific server endpoints
use actix_web::{HttpRequest, HttpResponse, Scope, get, web};
use uuid::Uuid;
@ -17,7 +19,7 @@ use crate::{
pub fn web() -> Scope {
web::scope("")
// Servers
.service(res)
.service(get)
// Channels
.service(channels::get)
.service(channels::create)
@ -36,8 +38,41 @@ pub fn web() -> Scope {
.service(icon::upload)
}
/// `GET /api/v1/servers/{uuid}` DESCRIPTION
///
/// requires auth: yes
///
/// ### Response Example
/// ```
/// json!({
/// "uuid": "5ba61ec7-5f97-43e1-89a5-d4693c155612",
/// "name": "My first server!",
/// "description": "This is a cool and nullable description!",
/// "icon": "https://nullable-url/path/to/icon.png",
/// "owner_uuid": "155d2291-fb23-46bd-a656-ae7c5d8218e6",
/// "roles": [
/// {
/// "uuid": "be0e4da4-cf73-4f45-98f8-bb1c73d1ab8b",
/// "guild_uuid": "5ba61ec7-5f97-43e1-89a5-d4693c155612",
/// "name": "Cool people",
/// "color": 15650773,
/// "is_above": c7432f1c-f4ad-4ad3-8216-51388b6abb5b,
/// "permissions": 0
/// }
/// {
/// "uuid": "c7432f1c-f4ad-4ad3-8216-51388b6abb5b",
/// "guild_uuid": "5ba61ec7-5f97-43e1-89a5-d4693c155612",
/// "name": "Equally cool people",
/// "color": 16777215,
/// "is_above": null,
/// "permissions": 0
/// }
/// ],
/// "member_count": 20
/// });
/// ```
#[get("/{uuid}")]
pub async fn res(
pub async fn get(
req: HttpRequest,
path: web::Path<(Uuid,)>,
data: web::Data<Data>,