From a0e175dfff8acb471503aa5befab661f80612f82 Mon Sep 17 00:00:00 2001 From: SquidSpirit Date: Wed, 23 Jul 2025 22:34:17 +0800 Subject: [PATCH] BLOG-44 feat: add color and label mappers, update post-related structures and services --- backend/feature/post/src/adapter/delivery.rs | 1 + .../adapter/delivery/color_response_dto.rs | 22 ++++++ .../adapter/delivery/label_response_dto.rs | 8 ++- backend/feature/post/src/adapter/gateway.rs | 4 ++ .../post/src/adapter/gateway/color_mapper.rs | 16 +++++ .../post/src/adapter/gateway/label_mapper.rs | 17 +++++ .../src/adapter/gateway/post_db_service.rs | 9 ++- .../src/adapter/gateway/post_info_mapper.rs | 27 ++++++++ .../post/src/adapter/gateway/post_mapper.rs | 17 +++++ .../adapter/gateway/post_repository_impl.rs | 15 +++- backend/feature/post/src/domain/entity.rs | 1 + .../feature/post/src/domain/entity/color.rs | 6 ++ .../feature/post/src/domain/entity/label.rs | 4 +- .../src/framework/db/post_db_service_impl.rs | 68 ++++++++++--------- 14 files changed, 175 insertions(+), 40 deletions(-) create mode 100644 backend/feature/post/src/adapter/delivery/color_response_dto.rs create mode 100644 backend/feature/post/src/adapter/gateway/color_mapper.rs create mode 100644 backend/feature/post/src/adapter/gateway/label_mapper.rs create mode 100644 backend/feature/post/src/adapter/gateway/post_info_mapper.rs create mode 100644 backend/feature/post/src/adapter/gateway/post_mapper.rs create mode 100644 backend/feature/post/src/domain/entity/color.rs diff --git a/backend/feature/post/src/adapter/delivery.rs b/backend/feature/post/src/adapter/delivery.rs index 02884a5..344245b 100644 --- a/backend/feature/post/src/adapter/delivery.rs +++ b/backend/feature/post/src/adapter/delivery.rs @@ -1,3 +1,4 @@ +pub mod color_response_dto; pub mod label_response_dto; pub mod post_controller; pub mod post_info_query_dto; diff --git a/backend/feature/post/src/adapter/delivery/color_response_dto.rs b/backend/feature/post/src/adapter/delivery/color_response_dto.rs new file mode 100644 index 0000000..0d8e1cf --- /dev/null +++ b/backend/feature/post/src/adapter/delivery/color_response_dto.rs @@ -0,0 +1,22 @@ +use serde::Serialize; + +use crate::domain::entity::color::Color; + +#[derive(Serialize)] +pub struct ColorResponseDto { + pub red: u8, + pub green: u8, + pub blue: u8, + pub alpha: u8, +} + +impl From for ColorResponseDto { + fn from(color: Color) -> Self { + Self { + red: color.red, + green: color.green, + blue: color.blue, + alpha: color.alpha, + } + } +} diff --git a/backend/feature/post/src/adapter/delivery/label_response_dto.rs b/backend/feature/post/src/adapter/delivery/label_response_dto.rs index e709c27..9da46d3 100644 --- a/backend/feature/post/src/adapter/delivery/label_response_dto.rs +++ b/backend/feature/post/src/adapter/delivery/label_response_dto.rs @@ -1,12 +1,14 @@ use serde::Serialize; -use crate::domain::entity::label::Label; +use crate::{ + adapter::delivery::color_response_dto::ColorResponseDto, domain::entity::label::Label, +}; #[derive(Serialize)] pub struct LabelResponseDto { pub id: i32, pub name: String, - pub color: String, + pub color: ColorResponseDto, } impl From