From 308c4fb9c5c95a6e516555fa88755bf7898bd939 Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Tue, 25 Jun 2024 06:51:22 -0500 Subject: [PATCH] setup for api posting to db --- src/api/camp_form.rs | 6 ++++++ src/api/errors.rs | 25 +++++++++++++++++++++++++ src/api/health_form.rs | 2 +- src/api/mod.rs | 1 + 4 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/api/errors.rs diff --git a/src/api/camp_form.rs b/src/api/camp_form.rs index 8cb2a7e..405aec9 100644 --- a/src/api/camp_form.rs +++ b/src/api/camp_form.rs @@ -6,6 +6,8 @@ use lettre::{ Message, SmtpTransport, Transport, }; +use super::errors::ApiError; + #[derive(Debug, MultipartForm, Default)] struct CampForm { #[multipart(rename = "first-name")] @@ -310,3 +312,7 @@ pub async fn camp_form(MultipartForm(form): MultipartForm) -> HttpResp } } } + +async fn store_camp_form(form: CampForm) -> Result<(), ApiError> { + Ok(()) +} diff --git a/src/api/errors.rs b/src/api/errors.rs new file mode 100644 index 0000000..106d97a --- /dev/null +++ b/src/api/errors.rs @@ -0,0 +1,25 @@ +use serde::Serialize; + +#[derive(Debug)] +pub enum ApiErrorType { + DbError, + NotFoundError, +} + +impl Default for ApiErrorType { + fn default() -> ApiErrorType { + ApiErrorType::NotFoundError + } +} + +#[derive(Debug, Default)] +pub struct ApiError { + pub message: Option, + pub cause: Option, + pub error_type: ApiErrorType, +} + +#[derive(Serialize)] +pub struct ApiErrorResponse { + pub error: String, +} diff --git a/src/api/health_form.rs b/src/api/health_form.rs index 19ea367..1c95e02 100644 --- a/src/api/health_form.rs +++ b/src/api/health_form.rs @@ -505,6 +505,6 @@ pub async fn health_form(MultipartForm(form): MultipartForm) -> Http // HttpResponse::Ok().body("hi") } -async fn post_health_form(_form: HealthForm) -> bool { +async fn store_health_form(_form: HealthForm) -> bool { todo!() } diff --git a/src/api/mod.rs b/src/api/mod.rs index e291cc9..f9c19bf 100644 --- a/src/api/mod.rs +++ b/src/api/mod.rs @@ -1,5 +1,6 @@ pub mod camp_form; pub mod church_form; +pub mod errors; pub mod health_form; pub mod local_trip_form; pub mod mt_form;