Skip to content

Commit

Permalink
use PageTitle::from(String)
Browse files Browse the repository at this point in the history
  • Loading branch information
bouzuya committed Nov 20, 2021
1 parent 08da366 commit 7dce884
Show file tree
Hide file tree
Showing 8 changed files with 17 additions and 34 deletions.
2 changes: 1 addition & 1 deletion crates/application/src/adapter.rs
Expand Up @@ -129,7 +129,7 @@ mod tests {
fs::write(file_path.as_path(), "# title1\n\ncontent")?;
assert_eq!(
repository.find_title(&page_id)?,
Some(PageTitle::from_str("title1")?)
Some(PageTitle::from("title1".to_string()))
);

Ok(())
Expand Down
3 changes: 1 addition & 2 deletions crates/application/src/command/insert_links.rs
@@ -1,7 +1,6 @@
use crate::url_helpers::title_url;
use anyhow::{anyhow, Context};
use entity::{PageContent, PageId, PageTitle};
use std::str::FromStr;
use use_case::{HasPageRepository, PageRepository};

pub fn insert_links<App: HasPageRepository>(app: App, id_like: &str) -> anyhow::Result<()> {
Expand All @@ -21,7 +20,7 @@ pub fn insert_links<App: HasPageRepository>(app: App, id_like: &str) -> anyhow::
links
.into_iter()
.map(|link| -> anyhow::Result<String> {
let page_title = PageTitle::from_str(link.as_str())?;
let page_title = PageTitle::from(link.clone());
let url = title_url(&page_title);
Ok(format!("[{}]: {}", link, url))
})
Expand Down
4 changes: 1 addition & 3 deletions crates/application/src/command/link.rs
@@ -1,13 +1,11 @@
use std::str::FromStr;

use crate::url_helpers::title_url;
use entity::{PageId, PagePath, PageTitle};

pub fn link(id_like_or_title: &str) -> Result<(), Box<dyn std::error::Error>> {
let url = match PageId::from_like_str(id_like_or_title) {
Ok(page_id) => PagePath::from(page_id).to_string(),
Err(_) => {
let page_title = PageTitle::from_str(id_like_or_title)?;
let page_title = PageTitle::from(id_like_or_title.to_string());
title_url(&page_title)
}
};
Expand Down
4 changes: 1 addition & 3 deletions crates/application/src/command/new.rs
@@ -1,5 +1,3 @@
use std::str::FromStr;

use entity::PageTitle;
use use_case::{HasNewPageUseCase, NewPageUseCase};

Expand All @@ -9,7 +7,7 @@ pub fn new<App: HasNewPageUseCase>(
app: App,
title: Option<&str>,
) -> Result<(), Box<dyn std::error::Error>> {
let title = PageTitle::from_str(title.unwrap_or_default())?;
let title = PageTitle::from(title.unwrap_or_default().to_string());
let new_page_id = app.new_page_use_case().new_page(title)?;
let new_file_name = to_file_name(&new_page_id);
println!("{}", new_file_name);
Expand Down
5 changes: 1 addition & 4 deletions crates/application/src/command/server/handler/title.rs
@@ -1,5 +1,3 @@
use std::str::FromStr;

use crate::handler_helpers::is_all;
use crate::helpers::{read_obsoleted_map, read_title_map};
use crate::template::{PageItemTemplate, TitleNotFoundTemplate, TitleTemplate};
Expand All @@ -13,8 +11,7 @@ pub async fn title(req: actix_web::HttpRequest) -> std::io::Result<HttpResponse>
let params: (String,) = req.match_info().load().unwrap();
let obsoleted_map = read_obsoleted_map()?;
let title_map = read_title_map()?;
// TODO: unwrap
let title = PageTitle::from_str(&params.0).unwrap();
let title = PageTitle::from(params.0);
if let Some(page_ids) = title_map.get(&title) {
let page_ids = page_ids
.iter()
Expand Down
11 changes: 4 additions & 7 deletions crates/application/src/helpers.rs
@@ -1,6 +1,6 @@
use std::str::FromStr;

use entity::{PageId, PageTitle, ParsePageTitleError};
use entity::{PageId, PageTitle};

// TODO: returns PathBuf
pub fn to_file_name(page_id: &PageId) -> String {
Expand All @@ -26,12 +26,10 @@ pub fn read_links(page_id: &PageId) -> std::io::Result<Vec<PageTitle>> {
let file_name = to_file_name(page_id);
let content = std::fs::read_to_string(&file_name)?;
let links = read_links_impl(&content);
// TODO: unwrap
Ok(links
.iter()
.map(|s| PageTitle::from_str(s))
.collect::<Result<Vec<PageTitle>, ParsePageTitleError>>()
.unwrap())
.map(|s| PageTitle::from(s.to_owned()))
.collect::<Vec<PageTitle>>())
}

fn read_links_impl(md: &str) -> Vec<String> {
Expand Down Expand Up @@ -104,8 +102,7 @@ pub fn read_title(page_id: &PageId) -> PageTitle {
Err(_) => return PageTitle::default(),
};
if let Some(stripped) = buffer.strip_prefix("# ") {
// TODO: unwrap
PageTitle::from_str(stripped.trim()).unwrap()
PageTitle::from(stripped.trim().to_string())
} else {
PageTitle::default()
}
Expand Down
18 changes: 7 additions & 11 deletions crates/entity/src/entity/page_title.rs
Expand Up @@ -41,16 +41,13 @@ impl From<PageTitle> for String {

#[cfg(test)]
mod tests {
use std::str::FromStr;

use super::*;

#[test]
fn default_test() -> anyhow::Result<()> {
fn default_test() {
let page_title1 = PageTitle::default();
let page_title2 = PageTitle::from_str("")?;
let page_title2 = PageTitle::from("".to_string());
assert_eq!(page_title1, page_title2);
Ok(())
}

#[test]
Expand All @@ -59,13 +56,12 @@ mod tests {
}

#[test]
fn from_eq_test() -> anyhow::Result<()> {
fn from_eq_test() {
let s = "title1";
let page_title1 = PageTitle::from_str(s)?;
let page_title2 = PageTitle::from_str(s)?;
assert_eq!(page_title1.to_string(), s.to_owned());
assert_eq!(page_title2.to_string(), s.to_owned());
let page_title1 = PageTitle::from(s.to_string());
let page_title2 = PageTitle::from(s.to_string());
assert_eq!(page_title1.to_string(), s);
assert_eq!(page_title2.to_string(), s);
assert_eq!(page_title1, page_title2);
Ok(())
}
}
4 changes: 1 addition & 3 deletions crates/use_case/src/use_case/new_page_use_case.rs
Expand Up @@ -23,8 +23,6 @@ pub trait HasNewPageUseCase {

#[cfg(test)]
mod tests {
use std::str::FromStr;

use super::*;
use crate::MockPageRepository;

Expand Down Expand Up @@ -56,7 +54,7 @@ mod tests {
// TODO: test new_page_id & content
.returning(|_, _| Ok(()));
let app = TestApp { page_repository };
let page_title = PageTitle::from_str("title1")?;
let page_title = PageTitle::from("title1".to_string());
let _new_page_id = app.new_page_use_case().new_page(page_title)?;
// TODO: test _new_page_id
Ok(())
Expand Down

0 comments on commit 7dce884

Please sign in to comment.