forked from jmug/stoatchat
chore(doc): add API information to spec
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
pub use rocket::http::Status;
|
pub use rocket::http::Status;
|
||||||
pub use rocket::response::Redirect;
|
pub use rocket::response::Redirect;
|
||||||
use rocket::{Build, Rocket};
|
use rocket::{Build, Rocket};
|
||||||
use rocket_okapi::settings::OpenApiSettings;
|
use rocket_okapi::{okapi::openapi3::OpenApi, settings::OpenApiSettings};
|
||||||
|
|
||||||
mod bots;
|
mod bots;
|
||||||
mod channels;
|
mod channels;
|
||||||
@@ -18,6 +18,7 @@ pub fn mount(mut rocket: Rocket<Build>) -> Rocket<Build> {
|
|||||||
|
|
||||||
mount_endpoints_and_merged_docs! {
|
mount_endpoints_and_merged_docs! {
|
||||||
rocket, "/".to_owned(), settings,
|
rocket, "/".to_owned(), settings,
|
||||||
|
"/" => (vec![], custom_openapi_spec()),
|
||||||
"" => openapi_get_routes_spec![root::root, root::ping],
|
"" => openapi_get_routes_spec![root::root, root::ping],
|
||||||
"/bots" => bots::routes(),
|
"/bots" => bots::routes(),
|
||||||
"/channels" => channels::routes(),
|
"/channels" => channels::routes(),
|
||||||
@@ -33,3 +34,45 @@ pub fn mount(mut rocket: Rocket<Build>) -> Rocket<Build> {
|
|||||||
.mount("/push", push::routes())
|
.mount("/push", push::routes())
|
||||||
.mount("/sync", sync::routes())
|
.mount("/sync", sync::routes())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn custom_openapi_spec() -> OpenApi {
|
||||||
|
use rocket_okapi::okapi::openapi3::*;
|
||||||
|
|
||||||
|
let mut extensions = schemars::Map::new();
|
||||||
|
extensions.insert(
|
||||||
|
"x-logo".to_owned(),
|
||||||
|
json!({
|
||||||
|
"url": "https://revolt.chat/header.png",
|
||||||
|
"altText": "Revolt Header"
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
|
OpenApi {
|
||||||
|
openapi: OpenApi::default_version(),
|
||||||
|
info: Info {
|
||||||
|
title: "Revolt API".to_owned(),
|
||||||
|
description: Some("User-first privacy focused chat platform.".to_owned()),
|
||||||
|
terms_of_service: Some("https://revolt.chat/terms".to_owned()),
|
||||||
|
contact: Some(Contact {
|
||||||
|
name: Some("Revolt Support".to_owned()),
|
||||||
|
url: Some("https://revolt.chat".to_owned()),
|
||||||
|
email: Some("contact@revolt.chat".to_owned()),
|
||||||
|
..Default::default()
|
||||||
|
}),
|
||||||
|
license: Some(License {
|
||||||
|
name: "AGPLv3".to_owned(),
|
||||||
|
url: Some("https://github.com/revoltchat/delta/blob/master/LICENSE".to_owned()),
|
||||||
|
..Default::default()
|
||||||
|
}),
|
||||||
|
version: "0.5.3-rc.1".to_owned(),
|
||||||
|
..Default::default()
|
||||||
|
},
|
||||||
|
servers: vec![Server {
|
||||||
|
url: "https://api.revolt.chat".to_owned(),
|
||||||
|
description: Some("Revolt API".to_owned()),
|
||||||
|
..Default::default()
|
||||||
|
}],
|
||||||
|
extensions,
|
||||||
|
..Default::default()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user