summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.rs35
-rw-r--r--src/routes.rs0
-rw-r--r--src/routes/hello.rs11
-rw-r--r--src/structs.rs35
4 files changed, 81 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
new file mode 100644
index 0000000..af45779
--- /dev/null
+++ b/src/main.rs
@@ -0,0 +1,35 @@
+mod structs;
+mod routes;
+
+use actix_web::{web, App, HttpServer};
+use sqlx::mysql::{MySqlPool, MySqlPoolOptions};
+
+#[derive(Clone)]
+struct AppState {
+ pool: MySqlPool,
+}
+
+#[actix_web::main]
+async fn main() -> std::io::Result<()> {
+ let pool: MySqlPool = MySqlPoolOptions::new()
+ .max_connections(10)
+ .connect(DB_URL)
+ .await
+ .unwrap();
+
+ let app_state = AppState { pool };
+
+ HttpServer::new(move || {
+ App::new()
+ .app_data(web::Data::new(app_state.clone()))
+ .route("/", web::get().to(root))
+ .service(routes::hello::hello_actix)
+ })
+ .bind(("127.0.0.1", 8000))?
+ .run()
+ .await
+}
+
+async fn root() -> String {
+ String::from("Server is up and running")
+}
diff --git a/src/routes.rs b/src/routes.rs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/routes.rs
diff --git a/src/routes/hello.rs b/src/routes/hello.rs
new file mode 100644
index 0000000..c356081
--- /dev/null
+++ b/src/routes/hello.rs
@@ -0,0 +1,11 @@
+use crate::AppState;
+use actix_web::{get, web, HttpResponse};
+use serde::Deserialize;
+
+#[get("/hello")]
+pub async fn hello_actix(app_state: web::Data<AppState>) -> HttpResponse {
+ struct Song {
+ }
+
+ return HttpResponse::Ok().json(databases);
+}
diff --git a/src/structs.rs b/src/structs.rs
new file mode 100644
index 0000000..7535bb4
--- /dev/null
+++ b/src/structs.rs
@@ -0,0 +1,35 @@
+#[allow(dead_code)]
+struct Song {
+ //song variables
+ id: i32,
+ title: String,
+ lyrics: String,
+
+ //album variables
+ album_id: i32,
+ genres: Vec<String>,
+ album_cover: String,
+
+ //artist variables
+ artist_id: i32,
+ artist_name: String,
+}
+
+#[allow(dead_code)]
+struct Album {
+ id: i32,
+ title: String,
+ genres: Vec<String>,
+ cover: String,
+ songs: Vec<i32>,
+}
+
+#[allow(dead_code)]
+struct Artist {
+ id: i32,
+ name: String,
+ genres: Vec<String>,
+ albums: Vec<i32>,
+}
+
+// lepht anonym