summaryrefslogtreecommitdiff
path: root/dichroism/src/handlers.rs
diff options
context:
space:
mode:
Diffstat (limited to 'dichroism/src/handlers.rs')
-rw-r--r--dichroism/src/handlers.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/dichroism/src/handlers.rs b/dichroism/src/handlers.rs
new file mode 100644
index 0000000..1e0ae28
--- /dev/null
+++ b/dichroism/src/handlers.rs
@@ -0,0 +1,29 @@
+use crate::image_api;
+use actix_web::{get, post, HttpResponse, Responder};
+
+#[get("/")]
+async fn hello() -> impl Responder {
+ HttpResponse::Ok().body("Hey, this is an API!")
+}
+
+#[post("/images")]
+async fn create_image(req_body: String) -> impl Responder {
+ let data = match image_api::extract_data(&req_body) {
+ Err(e) => return HttpResponse::BadRequest().body(format!("fail: {}", e.to_string())),
+ Ok(d) => d,
+ };
+
+ if let Err(e) = image_api::generate_images(data) {
+ return HttpResponse::BadRequest().body(format!(
+ "Unable to extract image from data URI: {}",
+ e.to_string()
+ ));
+ }
+
+ HttpResponse::Ok().body("Image created.")
+}
+
+#[get("/products")]
+async fn get_products(_req_body: String) -> impl Responder {
+ HttpResponse::Ok().body("got products!")
+}