added customizability for /pasta/, /url/ and /raw/ endpoints
This commit is contained in:
parent
f352129c78
commit
51751e3ee2
5 changed files with 31 additions and 10 deletions
12
src/args.rs
12
src/args.rs
|
@ -133,6 +133,18 @@ pub struct Args {
|
|||
/// Enable the use of Hash IDs for shorter URLs instead of animal names.
|
||||
#[clap(long, env = "MICROBIN_HASH_IDS")]
|
||||
pub hash_ids: bool,
|
||||
|
||||
/// Endpoint for /url/
|
||||
#[clap(long, env = "MICROBIN_URL_EP", default_value = "url" )]
|
||||
pub url_endpoint: String,
|
||||
|
||||
/// Endpoint for /pasta/
|
||||
#[clap(long, env = "MICROBIN_PASTA_EP", default_value = "pasta" )]
|
||||
pub pasta_endpoint: String,
|
||||
|
||||
/// Endpoint for /raw/
|
||||
#[clap(long, env = "MICROBIN_RAW_EP", default_value = "raw" )]
|
||||
pub raw_endpoint: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
|
|
|
@ -197,6 +197,6 @@ pub async fn create(
|
|||
CONVERTER.to_names(id)
|
||||
};
|
||||
Ok(HttpResponse::Found()
|
||||
.append_header(("Location", format!("{}/pasta/{}", ARGS.public_path, slug)))
|
||||
.append_header(("Location", format!("{}/{}/{}", ARGS.public_path, ARGS.pasta_endpoint, slug)))
|
||||
.finish())
|
||||
}
|
||||
|
|
|
@ -19,7 +19,6 @@ struct PastaTemplate<'a> {
|
|||
}
|
||||
|
||||
/// Endpoint to view a pasta.
|
||||
#[get("/pasta/{id}")]
|
||||
pub async fn getpasta(data: web::Data<AppState>, id: web::Path<String>) -> HttpResponse {
|
||||
// get access to the pasta collection
|
||||
let mut pastas = data.pastas.lock().await;
|
||||
|
@ -84,7 +83,6 @@ pub async fn getpasta(data: web::Data<AppState>, id: web::Path<String>) -> HttpR
|
|||
}
|
||||
|
||||
/// Endpoint for redirection.
|
||||
#[get("/url/{id}")]
|
||||
pub async fn redirecturl(data: web::Data<AppState>, id: web::Path<String>) -> HttpResponse {
|
||||
// get access to the pasta collection
|
||||
let mut pastas = data.pastas.lock().await;
|
||||
|
@ -152,7 +150,6 @@ pub async fn redirecturl(data: web::Data<AppState>, id: web::Path<String>) -> Ht
|
|||
}
|
||||
|
||||
/// Endpoint to request pasta as raw file.
|
||||
#[get("/raw/{id}")]
|
||||
pub async fn getrawpasta(data: web::Data<AppState>, id: web::Path<String>) -> String {
|
||||
// get access to the pasta collection
|
||||
let mut pastas = data.pastas.lock().await;
|
||||
|
|
18
src/main.rs
18
src/main.rs
|
@ -83,9 +83,21 @@ async fn main() -> std::io::Result<()> {
|
|||
.wrap(middleware::NormalizePath::trim())
|
||||
.service(create::index)
|
||||
.service(info::info)
|
||||
.service(pasta_endpoint::getpasta)
|
||||
.service(pasta_endpoint::getrawpasta)
|
||||
.service(pasta_endpoint::redirecturl)
|
||||
.route(
|
||||
&format!("/{}/{{id}}", ARGS.pasta_endpoint),
|
||||
web::get().to(pasta_endpoint::getpasta)
|
||||
)
|
||||
.route(
|
||||
&format!("/{}/{{id}}", ARGS.raw_endpoint),
|
||||
web::get().to(pasta_endpoint::getrawpasta)
|
||||
)
|
||||
.route(
|
||||
&format!("/{}/{{id}}", ARGS.url_endpoint),
|
||||
web::get().to(pasta_endpoint::redirecturl)
|
||||
)
|
||||
//.service(pasta_endpoint::getpasta)
|
||||
//.service(pasta_endpoint::getrawpasta)
|
||||
//.service(pasta_endpoint::redirecturl)
|
||||
.service(edit::get_edit)
|
||||
.service(edit::post_edit)
|
||||
.service(static_resources::static_resources)
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
Copy Redirect
|
||||
</button>
|
||||
{%- endif %}
|
||||
<a style="margin-right: 1rem" href="{{ args.public_path }}/raw/{{pasta.id_as_animals()}}">Raw Text
|
||||
<a style="margin-right: 1rem" href="{{ args.public_path }}/{{ args.raw_endpoint }}/{{pasta.id_as_animals()}}">Raw Text
|
||||
Content</a>
|
||||
{%- endif %}
|
||||
{% if args.qr && args.public_path.to_string() != "" %}
|
||||
|
@ -66,8 +66,8 @@
|
|||
const copyTextBtn = document.getElementById("copy-text-button")
|
||||
const copyRedirectBtn = document.getElementById("copy-redirect-button")
|
||||
const content = `{{ pasta.content_escaped() }}`
|
||||
const url = `{{ args.public_path }}/pasta/{{pasta.id_as_animals()}}`
|
||||
const redirect_url = `{{ args.public_path }}/url/{{pasta.id_as_animals()}}`
|
||||
const url = `{{ args.public_path }}/{{ args.pasta_endpoint }}/{{pasta.id_as_animals()}}`
|
||||
const redirect_url = `{{ args.public_path }}/{{ args.url_endpoint }}/{{pasta.id_as_animals()}}`
|
||||
|
||||
copyURLBtn.addEventListener("click", () => {
|
||||
navigator.clipboard.writeText(url)
|
||||
|
|
Loading…
Reference in a new issue