feat: Enhance validation and permissions handling across controllers
- Added `ValidatedJson` extractor for automatic JSON validation in `events_controller.rs`, `testimonials_controller.rs`, `mentors_controller.rs`, `gacha_items_controller.rs`, and `hackathon_controller.rs`. - Replaced manual permission checks with `require_permissions!` and `require_auth!` macros in relevant controllers to streamline permission handling. - Introduced `sanitization` utilities in `sanitization.rs` for improved input sanitization. - Added `permission_macros.rs` to encapsulate permission checking logic and reduce boilerplate. - Updated dependencies in `Cargo.toml` to include `serde_json` and `validator`. - Implemented error handling improvements in `notification_service.rs` for better response management.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
use crate::AppState;
|
||||
use imphnen_entities::{MetaRequestDto, ResponseListSuccessDto, ResponseSuccessDto};
|
||||
use imphnen_utils::{common_response, make_thing, success_list_response, success_response, validate_request};
|
||||
use imphnen_utils::{common_response, make_thing, success_list_response, success_response};
|
||||
use crate::v1::gacha_items::GachaItemDto;
|
||||
use crate::v1::gacha_items::gacha_items_dto::{GachaItemRequestDto, GachaItemUpdateRequestDto};
|
||||
use crate::v1::gacha_items::gacha_items_repository::GachaItemRepository;
|
||||
@@ -44,9 +44,7 @@ impl GachaItemService {
|
||||
state: &AppState,
|
||||
payload: GachaItemRequestDto,
|
||||
) -> Response {
|
||||
if let Err((status, message)) = validate_request(&payload) {
|
||||
return common_response(status, &message);
|
||||
}
|
||||
// Validation is now automatic via ValidatedJson extractor
|
||||
let repo = GachaItemRepository::new(state);
|
||||
let schema = GachaItemSchema {
|
||||
id: make_thing(&ResourceEnum::GachaItems.to_string(), &payload.name), // Fixed: Use payload.name or some other identifier
|
||||
@@ -65,9 +63,7 @@ impl GachaItemService {
|
||||
payload: GachaItemUpdateRequestDto,
|
||||
id: String,
|
||||
) -> Response {
|
||||
if let Err((status, message)) = validate_request(&payload) {
|
||||
return common_response(status, &message);
|
||||
}
|
||||
// Validation is now automatic via ValidatedJson extractor
|
||||
let repo = GachaItemRepository::new(state);
|
||||
|
||||
// Get current gacha item data first
|
||||
|
||||
Reference in New Issue
Block a user