Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
shantanuraj committed Dec 11, 2024
1 parent 0be7c46 commit 36b3bd9
Showing 1 changed file with 25 additions and 6 deletions.
31 changes: 25 additions & 6 deletions src/models.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,13 @@ impl Entities {
.find(|w| w.name == name)
.map(|w| w.id)
}
pub fn project_for_name(&self, workspace_id: i64, name: &str) -> Option<Project> {
self.projects.values().find(|p| p.workspace_id == workspace_id && p.name == name).cloned()
}

pub fn task_for_name(&self, workspace_id: i64, name: &str) -> Option<Task> {
self.tasks.values().find(|t| t.workspace_id == workspace_id && t.name == name).cloned()
}
}

#[derive(Serialize, Deserialize, Clone, Debug)]
Expand Down Expand Up @@ -384,24 +391,36 @@ impl Parcel for TimeEntry {
"Tags" => time_entry.tags = value.split(", ").map(String::from).collect(),
"Project" => {
let project_parts: Vec<&str> = value.split(" -- ").collect();
if project_parts.len() < 2 {
if project_parts.len() < 1 {
continue;
}
let project_name = project_parts[0].to_string();
let project_id = if project_parts.len() > 1 {
project_parts[1].parse().unwrap()
} else {
-1
};
time_entry.project = Some(Project {
id: project_parts[1].parse().unwrap(),
name: project_parts[0].to_string(),
id: project_id,
name: project_name,
workspace_id: time_entry.workspace_id,
..Project::default()
});
}
"Task" => {
let task_parts: Vec<&str> = value.split(" -- ").collect();
if task_parts.len() < 2 {
if task_parts.len() < 1 {
continue;
}
let task_name = task_parts[0].to_string();
let task_id = if task_parts.len() > 1 {
task_parts[1].parse().unwrap()
} else {
-1
};
time_entry.task = Some(Task {
id: task_parts[1].parse().unwrap(),
name: task_parts[0].to_string(),
id: task_id,
name: task_name,
workspace_id: time_entry.workspace_id,
project: time_entry.project.clone().unwrap_or(Project::default()),
});
Expand Down

0 comments on commit 36b3bd9

Please sign in to comment.