summaryrefslogtreecommitdiff
path: root/src/public/docs.rs
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2023-02-12 14:11:50 -0500
committerTyler Murphy <tylermurphy534@gmail.com>2023-02-12 14:11:50 -0500
commit3d71da490947aacc52a3b77efdc13d5f0458c57f (patch)
tree8047eb6966655cffc772cbde4d73982fb7064a28 /src/public/docs.rs
parentdocs is ssr'd (diff)
downloadxssbook-3d71da490947aacc52a3b77efdc13d5f0458c57f.tar.gz
xssbook-3d71da490947aacc52a3b77efdc13d5f0458c57f.tar.bz2
xssbook-3d71da490947aacc52a3b77efdc13d5f0458c57f.zip
refactor
Diffstat (limited to 'src/public/docs.rs')
-rw-r--r--src/public/docs.rs96
1 files changed, 51 insertions, 45 deletions
diff --git a/src/public/docs.rs b/src/public/docs.rs
index 1f1448b..f4e26be 100644
--- a/src/public/docs.rs
+++ b/src/public/docs.rs
@@ -2,7 +2,10 @@ use axum::response::Response;
use lazy_static::lazy_static;
use tokio::sync::Mutex;
-use crate::{api::{admin, users, posts, auth}, types::http::ResponseCode};
+use crate::{
+ api::{admin, auth, posts, users},
+ types::http::ResponseCode,
+};
use super::console::beautify;
@@ -40,10 +43,10 @@ fn generate_body(body: Option<&'static str>) -> String {
return String::new()
};
let html = r#"
- <h2>Body</h2>
- <div class="body">
- $body
- </div>
+ <h2>Body</h2>
+ <div class="body">
+ $body
+ </div>
"#
.to_string();
let body = body.trim();
@@ -60,20 +63,20 @@ fn generate_body(body: Option<&'static str>) -> String {
fn generate_responses(responses: &[(u16, &'static str)]) -> String {
let mut html = r#"
- <h2>Responses</h2>
- $responses
+ <h2>Responses</h2>
+ $responses
"#
.to_string();
for response in responses {
let res = format!(
r#"
- <div>
- <span class="ptype">{}</span>
- <span class="pdesc">{}</span>
- </div>
- $responses
- "#,
+ <div>
+ <span class="ptype">{}</span>
+ <span class="pdesc">{}</span>
+ </div>
+ $responses
+ "#,
response.0, response.1
);
html = html.replace("$responses", &res);
@@ -93,18 +96,18 @@ fn generate_cookie(cookie: Option<&'static str>) -> String {
fn generate_endpoint(doc: &EndpointDocumentation) -> String {
let html = r#"
- <div>
- <div class="endpoint">
- <span class="method $method_class">$method</span>
- <span class="uri">$uri</span>
- <span class="desc">$description</span>
- $cookie
- </div>
- <div class="info">
- $body
- $responses
- </div>
+ <div>
+ <div class="endpoint">
+ <span class="method $method_class">$method</span>
+ <span class="uri">$uri</span>
+ <span class="desc">$description</span>
+ $cookie
</div>
+ <div class="info">
+ $body
+ $responses
+ </div>
+ </div>
"#;
html.replace("$method_class", &doc.method.to_string().to_lowercase())
@@ -123,6 +126,7 @@ pub async fn init() {
auth::AUTH_LOGOUT,
posts::POSTS_CREATE,
posts::POSTS_PAGE,
+ posts::COMMENTS_PAGE,
posts::POSTS_USER,
posts::POSTS_COMMENT,
posts::POSTS_LIKE,
@@ -136,6 +140,8 @@ pub async fn init() {
admin::ADMIN_POSTS,
admin::ADMIN_USERS,
admin::ADMIN_SESSIONS,
+ admin::ADMIN_COMMENTS,
+ admin::ADMIN_LIKES
];
let mut endpoints = ENDPOINTS.lock().await;
for doc in docs {
@@ -154,27 +160,27 @@ pub async fn generate() -> Response {
let html = format!(
r#"
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <link rel="stylesheet" href="/css/main.css">
- <link rel="stylesheet" href="/css/header.css">
- <link rel="stylesheet" href="/css/console.css">
- <link rel="stylesheet" href="/css/api.css">
- <title>XSSBook - API Documentation</title>
- </head>
- <body>
- <div id="header">
- <span class="logo"><a href="/">xssbook</a></span>
- <span class="gtext desc" style="margin-left: 6em; font-size: 2em; color: #606770">API Documentation</span>
- </div>
- <div id="docs">
- {data}
- </div>
- </body>
- </html>
- "#
+ <!DOCTYPE html>
+ <html lang="en">
+ <head>
+ <meta charset="UTF-8">
+ <link rel="stylesheet" href="/css/main.css">
+ <link rel="stylesheet" href="/css/header.css">
+ <link rel="stylesheet" href="/css/console.css">
+ <link rel="stylesheet" href="/css/api.css">
+ <title>XSSBook - API Documentation</title>
+ </head>
+ <body>
+ <div id="header">
+ <span class="logo"><a href="/">xssbook</a></span>
+ <span class="gtext desc" style="margin-left: 6em; font-size: 2em; color: #606770">API Documentation</span>
+ </div>
+ <div id="docs">
+ {data}
+ </div>
+ </body>
+ </html>
+ "#
);
ResponseCode::Success.html(&html)