feat(health): 注册媒体库和轮播图路由 + 权限码 + 公开端点
This commit is contained in:
@@ -7,13 +7,13 @@ use erp_core::module::{ErpModule, PermissionDescriptor};
|
|||||||
|
|
||||||
use crate::handler::{
|
use crate::handler::{
|
||||||
action_inbox_handler, alert_handler, alert_rule_handler, appointment_handler,
|
action_inbox_handler, alert_handler, alert_rule_handler, appointment_handler,
|
||||||
article_category_handler, article_handler, article_tag_handler, ble_gateway_handler,
|
article_category_handler, article_handler, article_tag_handler, banner_handler,
|
||||||
care_plan_handler, consent_handler, consultation_handler, critical_alert_handler,
|
ble_gateway_handler, care_plan_handler, consent_handler, consultation_handler,
|
||||||
critical_value_threshold_handler, daily_monitoring_handler, device_handler,
|
critical_alert_handler, critical_value_threshold_handler, daily_monitoring_handler,
|
||||||
device_reading_handler, diagnosis_handler, doctor_handler, family_proxy_handler,
|
device_handler, device_reading_handler, diagnosis_handler, doctor_handler,
|
||||||
follow_up_handler, follow_up_template_handler, health_data_handler, medication_record_handler,
|
family_proxy_handler, follow_up_handler, follow_up_template_handler, health_data_handler,
|
||||||
medication_reminder_handler, patient_handler, points_handler, shift_handler, stats_handler,
|
media_handler, medication_record_handler, medication_reminder_handler, patient_handler,
|
||||||
vital_signs_daily_handler,
|
points_handler, shift_handler, stats_handler, vital_signs_daily_handler,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub struct HealthModule;
|
pub struct HealthModule;
|
||||||
@@ -148,10 +148,15 @@ impl HealthModule {
|
|||||||
crate::state::HealthState: axum::extract::FromRef<S>,
|
crate::state::HealthState: axum::extract::FromRef<S>,
|
||||||
S: Clone + Send + Sync + 'static,
|
S: Clone + Send + Sync + 'static,
|
||||||
{
|
{
|
||||||
Router::new().route(
|
Router::new()
|
||||||
"/oauth/token",
|
.route(
|
||||||
axum::routing::post(crate::oauth::handler::token),
|
"/oauth/token",
|
||||||
)
|
axum::routing::post(crate::oauth::handler::token),
|
||||||
|
)
|
||||||
|
.route(
|
||||||
|
"/public/banners",
|
||||||
|
axum::routing::get(banner_handler::list_public_banners),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// FHIR R4 只读路由(使用 OAuth client_credentials 认证)
|
/// FHIR R4 只读路由(使用 OAuth client_credentials 认证)
|
||||||
@@ -502,6 +507,10 @@ impl HealthModule {
|
|||||||
"/health/consultation-sessions/{id}/messages",
|
"/health/consultation-sessions/{id}/messages",
|
||||||
axum::routing::get(consultation_handler::list_messages),
|
axum::routing::get(consultation_handler::list_messages),
|
||||||
)
|
)
|
||||||
|
.route(
|
||||||
|
"/health/consultation-sessions/{id}/messages/poll",
|
||||||
|
axum::routing::get(consultation_handler::poll_messages),
|
||||||
|
)
|
||||||
.route(
|
.route(
|
||||||
"/health/consultation-sessions/{id}/close",
|
"/health/consultation-sessions/{id}/close",
|
||||||
axum::routing::put(consultation_handler::close_session),
|
axum::routing::put(consultation_handler::close_session),
|
||||||
@@ -884,6 +893,58 @@ impl HealthModule {
|
|||||||
"/health/oauth/clients/{id}/regenerate-secret",
|
"/health/oauth/clients/{id}/regenerate-secret",
|
||||||
axum::routing::post(crate::oauth::handler::regenerate_secret),
|
axum::routing::post(crate::oauth::handler::regenerate_secret),
|
||||||
)
|
)
|
||||||
|
// 媒体库
|
||||||
|
.route(
|
||||||
|
"/health/media",
|
||||||
|
axum::routing::get(media_handler::list_media),
|
||||||
|
)
|
||||||
|
.route(
|
||||||
|
"/health/media/upload",
|
||||||
|
axum::routing::post(media_handler::upload_media),
|
||||||
|
)
|
||||||
|
.route(
|
||||||
|
"/health/media/batch-delete",
|
||||||
|
axum::routing::post(media_handler::batch_delete_media),
|
||||||
|
)
|
||||||
|
.route(
|
||||||
|
"/health/media/{id}",
|
||||||
|
axum::routing::get(media_handler::get_media)
|
||||||
|
.put(media_handler::update_media)
|
||||||
|
.delete(media_handler::delete_media),
|
||||||
|
)
|
||||||
|
.route(
|
||||||
|
"/health/media/{id}/move",
|
||||||
|
axum::routing::post(media_handler::move_media),
|
||||||
|
)
|
||||||
|
.route(
|
||||||
|
"/health/media/{id}/crop",
|
||||||
|
axum::routing::post(media_handler::crop_media),
|
||||||
|
)
|
||||||
|
// 媒体文件夹
|
||||||
|
.route(
|
||||||
|
"/health/media-folders",
|
||||||
|
axum::routing::get(media_handler::list_folders).post(media_handler::create_folder),
|
||||||
|
)
|
||||||
|
.route(
|
||||||
|
"/health/media-folders/{id}",
|
||||||
|
axum::routing::put(media_handler::update_folder)
|
||||||
|
.delete(media_handler::delete_folder),
|
||||||
|
)
|
||||||
|
// 轮播图管理
|
||||||
|
.route(
|
||||||
|
"/health/banners",
|
||||||
|
axum::routing::get(banner_handler::list_banners)
|
||||||
|
.post(banner_handler::create_banner),
|
||||||
|
)
|
||||||
|
.route(
|
||||||
|
"/health/banners/sort",
|
||||||
|
axum::routing::put(banner_handler::sort_banners),
|
||||||
|
)
|
||||||
|
.route(
|
||||||
|
"/health/banners/{id}",
|
||||||
|
axum::routing::put(banner_handler::update_banner)
|
||||||
|
.delete(banner_handler::delete_banner),
|
||||||
|
)
|
||||||
// 护理计划
|
// 护理计划
|
||||||
.route(
|
.route(
|
||||||
"/health/care-plans",
|
"/health/care-plans",
|
||||||
@@ -1487,6 +1548,32 @@ impl ErpModule for HealthModule {
|
|||||||
description: "授权/撤销家庭成员健康数据访问".into(),
|
description: "授权/撤销家庭成员健康数据访问".into(),
|
||||||
module: "health".into(),
|
module: "health".into(),
|
||||||
},
|
},
|
||||||
|
// 媒体库
|
||||||
|
PermissionDescriptor {
|
||||||
|
code: "health.media.list".into(),
|
||||||
|
name: "查看媒体库".into(),
|
||||||
|
description: "查看媒体文件列表、文件夹和详情".into(),
|
||||||
|
module: "health".into(),
|
||||||
|
},
|
||||||
|
PermissionDescriptor {
|
||||||
|
code: "health.media.manage".into(),
|
||||||
|
name: "管理媒体库".into(),
|
||||||
|
description: "上传/编辑/删除媒体文件、管理文件夹".into(),
|
||||||
|
module: "health".into(),
|
||||||
|
},
|
||||||
|
// 轮播图
|
||||||
|
PermissionDescriptor {
|
||||||
|
code: "health.banners.list".into(),
|
||||||
|
name: "查看轮播图".into(),
|
||||||
|
description: "查看轮播图列表和详情".into(),
|
||||||
|
module: "health".into(),
|
||||||
|
},
|
||||||
|
PermissionDescriptor {
|
||||||
|
code: "health.banners.manage".into(),
|
||||||
|
name: "管理轮播图".into(),
|
||||||
|
description: "创建/编辑/删除/排序轮播图".into(),
|
||||||
|
module: "health".into(),
|
||||||
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user