|
|
@ -1,9 +1,12 @@ |
|
|
|
#[macro_use] |
|
|
|
extern crate rocket; |
|
|
|
use libsig; |
|
|
|
use serde::{Serialize, Deserialize}; |
|
|
|
use rocket::fs::NamedFile; |
|
|
|
use rocket::response::content::{Css, Html}; |
|
|
|
use rocket::serde::json::Json; |
|
|
|
use serde::{Deserialize, Serialize}; |
|
|
|
use serde_json::{json, Value}; |
|
|
|
mod templates; |
|
|
|
|
|
|
|
#[get("/api")] |
|
|
|
fn api_version_available() -> Json<Value> { |
|
|
@ -26,24 +29,60 @@ struct Output { |
|
|
|
} |
|
|
|
|
|
|
|
#[get("/api/v1/generate")] |
|
|
|
fn generate() -> Json<Output> { |
|
|
|
fn api_v1_generate() -> Json<Output> { |
|
|
|
let idea = libsig::SongIdea::generate(); |
|
|
|
Json(Output { |
|
|
|
data: idea.clone(), |
|
|
|
text: idea.to_string() |
|
|
|
text: idea.to_string(), |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
#[get("/api/v1/generate_ambient")] |
|
|
|
fn generate_ambient() -> Json<Output> { |
|
|
|
fn api_v1_generate_ambient() -> Json<Output> { |
|
|
|
let idea = libsig::SongIdea::generate_ambient(); |
|
|
|
Json(Output { |
|
|
|
data: idea.clone(), |
|
|
|
text: idea.to_string() |
|
|
|
text: idea.to_string(), |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
#[get("/")] |
|
|
|
fn index() -> Html<String> { |
|
|
|
Html(templates::main_page_template(None)) |
|
|
|
} |
|
|
|
|
|
|
|
#[get("/generate")] |
|
|
|
fn generate() -> Html<String> { |
|
|
|
Html(templates::main_page_template(Some( |
|
|
|
libsig::SongIdea::generate(), |
|
|
|
))) |
|
|
|
} |
|
|
|
|
|
|
|
#[get("/generate_ambient")] |
|
|
|
fn generate_ambient() -> Html<String> { |
|
|
|
Html(templates::main_page_template(Some( |
|
|
|
libsig::SongIdea::generate_ambient(), |
|
|
|
))) |
|
|
|
} |
|
|
|
|
|
|
|
#[get("/style.css")] |
|
|
|
async fn style_css() -> Css<Option<NamedFile>> { |
|
|
|
Css(NamedFile::open("static/style.css").await.ok()) |
|
|
|
} |
|
|
|
|
|
|
|
#[launch] |
|
|
|
fn rocket() -> _ { |
|
|
|
rocket::build().mount("/", routes![api_version_available, api_v1_index, generate, generate_ambient]) |
|
|
|
rocket::build().mount( |
|
|
|
"/", |
|
|
|
routes![ |
|
|
|
api_version_available, |
|
|
|
api_v1_index, |
|
|
|
api_v1_generate, |
|
|
|
api_v1_generate_ambient, |
|
|
|
generate, |
|
|
|
generate_ambient, |
|
|
|
index, |
|
|
|
style_css, |
|
|
|
], |
|
|
|
) |
|
|
|
} |
|
|
|