diff --git a/README.md b/README.md new file mode 100644 index 0000000..1c75de5 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# EngageEarn API + +The api for the EngageEarn app. + diff --git a/src/events.rs b/src/events.rs index c10a7a6..37aaa81 100644 --- a/src/events.rs +++ b/src/events.rs @@ -18,9 +18,8 @@ pub async fn get_events_preview( AuthBearer(token): AuthBearer, State(app_state): State, ) -> impl IntoResponse { - match handle_token(token, &app_state, Role::Student) { - Ok(_) => {} - Err(err) => return err, + if let Err(err) = handle_token(token, &app_state, Role::Student) { + return err; }; let result = query_as!( @@ -66,9 +65,8 @@ pub async fn get_all_events( AuthBearer(token): AuthBearer, State(app_state): State, ) -> impl IntoResponse { - match handle_token(token, &app_state, Role::Student) { - Ok(_) => {} - Err(err) => return err, + if let Err(err) = handle_token(token, &app_state, Role::Student) { + return err; }; let result = query_as!( @@ -220,16 +218,21 @@ pub async fn delete_event( State(app_state): State, Query(get_event_query): Query, ) -> impl IntoResponse { - if let Err(err) = handle_token(token, &app_state, Role::Student) { - return err; + let token_data = match handle_token(token, &app_state, Role::Teacher) { + Err(err) => return err, + Ok(token_data) => token_data, }; let result = query!( r#" DELETE FROM events - WHERE id = $1 + WHERE + id = $1 AND + (created_by = $2 OR $3) "#, - get_event_query.id + get_event_query.id, + token_data.id, + token_data.role == Role::Admin, ) .execute(&app_state.db_pool) .await;