church-api/fix_handlers_with_email.sh
Benjamin Slingo 0c06e159bb Initial commit: Church API Rust implementation
Complete church management system with bulletin management, media processing, live streaming integration, and web interface. Includes authentication, email notifications, database migrations, and comprehensive test suite.
2025-08-19 20:56:41 -04:00

46 lines
1.8 KiB
Bash
Executable file

# Fix the approve handler with email
sed -i '/pub async fn approve(/,/^}/c\
pub async fn approve(\
Path(id): Path<Uuid>,\
State(state): State<AppState>,\
Json(req): Json<ApproveRejectRequest>,\
) -> Result<Json<ApiResponse<Event>>> {\
let pending_event = crate::db::events::get_pending_by_id(\&state.pool, \&id).await?\
.ok_or_else(|| ApiError::NotFound("Pending event not found".to_string()))?;\
\
let event = crate::db::events::approve_pending(\&state.pool, \&id, req.admin_notes.clone()).await?;\
\
if let Some(_submitter_email) = \&pending_event.submitter_email {\
let _ = state.mailer.send_event_approval_notification(\&pending_event, req.admin_notes.as_deref()).await;\
}\
\
Ok(Json(ApiResponse {\
success: true,\
data: Some(event),\
message: Some("Event approved successfully".to_string()),\
}))\
}' src/handlers/events.rs
# Fix the reject handler with email
sed -i '/pub async fn reject(/,/^}/c\
pub async fn reject(\
Path(id): Path<Uuid>,\
State(state): State<AppState>,\
Json(req): Json<ApproveRejectRequest>,\
) -> Result<Json<ApiResponse<String>>> {\
let pending_event = crate::db::events::get_pending_by_id(\&state.pool, \&id).await?\
.ok_or_else(|| ApiError::NotFound("Pending event not found".to_string()))?;\
\
crate::db::events::reject_pending(\&state.pool, \&id, req.admin_notes.clone()).await?;\
\
if let Some(_submitter_email) = \&pending_event.submitter_email {\
let _ = state.mailer.send_event_rejection_notification(\&pending_event, req.admin_notes.as_deref()).await;\
}\
\
Ok(Json(ApiResponse {\
success: true,\
data: Some("Event rejected".to_string()),\
message: Some("Event rejected successfully".to_string()),\
}))\
}' src/handlers/events.rs