Skip to content

Commit

Permalink
Rename PiGenerator to GeneratePiUseCase
Browse files Browse the repository at this point in the history
  • Loading branch information
bouzuya committed Aug 11, 2023
1 parent bf33de0 commit 3448449
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 26 deletions.
22 changes: 11 additions & 11 deletions src/handler/generate_pi.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use axum::{

use crate::{
model::{GenNameError, GenPiError, KanaForm, PI},
usecase::{HasPiGenerator, PiGenerator},
use_case::{GeneratePiUseCase, HasGeneratePiUseCase},
};

#[derive(serde::Deserialize)]
Expand All @@ -21,9 +21,9 @@ async fn handler<T>(
Query(q): Query<GetRootQuery>,
) -> Result<Json<PI>, StatusCode>
where
T: Clone + HasPiGenerator + Send + Sync,
T: Clone + HasGeneratePiUseCase + Send + Sync,
{
let pi_generator = state.pi_generator();
let pi_generator = state.generate_pi_use_case();

let is_katakana = q.katakana.unwrap_or_default();
let is_halfwidth = q.halfwidth.unwrap_or_default();
Expand All @@ -35,7 +35,7 @@ where
};

let pi = pi_generator
.generate(kana_form)
.generate_pi(kana_form)
.await
.map_err(|e| match e {
GenPiError::GenNameError(e) => match e {
Expand All @@ -48,7 +48,7 @@ where

pub fn route<T>() -> Router<T>
where
T: Clone + HasPiGenerator + Send + Sync + 'static,
T: Clone + HasGeneratePiUseCase + Send + Sync + 'static,
{
Router::new().route("/", get(handler::<T>))
}
Expand All @@ -60,7 +60,7 @@ mod tests {

use crate::{
model::{DateOfBirth, Name, Sex},
usecase::PiGenerator,
use_case::GeneratePiUseCase,
};

use super::*;
Expand All @@ -69,8 +69,8 @@ mod tests {
struct MockPiGenerator;

#[async_trait::async_trait]
impl PiGenerator for MockPiGenerator {
async fn generate(&self, _kana_form: KanaForm) -> Result<PI, GenPiError> {
impl GeneratePiUseCase for MockPiGenerator {
async fn generate_pi(&self, _kana_form: KanaForm) -> Result<PI, GenPiError> {
let sex = Sex::Male;
let name = Name {
first_name: "山田".to_string(),
Expand All @@ -95,9 +95,9 @@ mod tests {
pi_generator: MockPiGenerator,
}

impl HasPiGenerator for MockApp {
type PiGenerator = MockPiGenerator;
fn pi_generator(&self) -> &Self::PiGenerator {
impl HasGeneratePiUseCase for MockApp {
type GeneratePiUseCase = MockPiGenerator;
fn generate_pi_use_case(&self) -> &Self::GeneratePiUseCase {
&self.pi_generator
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ mod config;
mod handler;
mod model;
mod server;
mod usecase;
mod use_case;

use anyhow::bail;
use server::run_server;
Expand Down
8 changes: 4 additions & 4 deletions src/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use crate::{
config::Config,
handler::generate_pi,
model::{HasNameGenerator, NamesCache},
usecase::HasPiGenerator,
use_case::HasGeneratePiUseCase,
};

#[derive(Clone, Debug)]
Expand All @@ -25,10 +25,10 @@ impl HasNameGenerator for AppState {
}
}

impl HasPiGenerator for AppState {
type PiGenerator = NamesCache;
impl HasGeneratePiUseCase for AppState {
type GeneratePiUseCase = NamesCache;

fn pi_generator(&self) -> &Self::PiGenerator {
fn generate_pi_use_case(&self) -> &Self::GeneratePiUseCase {
&self.name_generator
}
}
Expand Down
3 changes: 3 additions & 0 deletions src/use_case.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
mod generate_pi;

pub use self::generate_pi::*;
14 changes: 7 additions & 7 deletions src/usecase/pi_generator.rs → src/use_case/generate_pi.rs
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
use crate::model::{DateOfBirth, GenPiError, KanaForm, NameGenerator, NamesCache, Sex, PI};

#[async_trait::async_trait]
pub trait PiGenerator {
async fn generate(&self, kana_form: KanaForm) -> Result<PI, GenPiError>;
pub trait GeneratePiUseCase {
async fn generate_pi(&self, kana_form: KanaForm) -> Result<PI, GenPiError>;
}

pub trait HasPiGenerator {
type PiGenerator: PiGenerator + Send + Sync;
fn pi_generator(&self) -> &Self::PiGenerator;
pub trait HasGeneratePiUseCase {
type GeneratePiUseCase: GeneratePiUseCase + Send + Sync;
fn generate_pi_use_case(&self) -> &Self::GeneratePiUseCase;
}

#[async_trait::async_trait]
impl PiGenerator for NamesCache {
async fn generate(&self, kana_form: KanaForm) -> Result<PI, GenPiError> {
impl GeneratePiUseCase for NamesCache {
async fn generate_pi(&self, kana_form: KanaForm) -> Result<PI, GenPiError> {
let sex = Sex::gen();
let name = NameGenerator::generate(self, sex)
.await
Expand Down
3 changes: 0 additions & 3 deletions src/usecase.rs

This file was deleted.

0 comments on commit 3448449

Please sign in to comment.