Fix bugs resulting from refactoring the terminal into project and workspace halves
This commit is contained in:
parent
83aefffa38
commit
2733f91d8c
7 changed files with 101 additions and 76 deletions
|
@ -1,20 +1,18 @@
|
|||
use std::path::PathBuf;
|
||||
|
||||
use db::{define_connection, query, sqlez_macros::sql};
|
||||
use workspace::{WorkspaceDb, WorkspaceId};
|
||||
|
||||
type ModelId = usize;
|
||||
use workspace::{ItemId, WorkspaceDb, WorkspaceId};
|
||||
|
||||
define_connection! {
|
||||
pub static ref TERMINAL_DB: TerminalDb<WorkspaceDb> =
|
||||
&[sql!(
|
||||
CREATE TABLE terminals (
|
||||
workspace_id INTEGER,
|
||||
model_id INTEGER UNIQUE,
|
||||
item_id INTEGER UNIQUE,
|
||||
working_directory BLOB,
|
||||
PRIMARY KEY(workspace_id, model_id),
|
||||
PRIMARY KEY(workspace_id, item_id),
|
||||
FOREIGN KEY(workspace_id) REFERENCES workspaces(workspace_id)
|
||||
ON DELETE CASCADE
|
||||
ON DELETE CASCADE
|
||||
) STRICT;
|
||||
)];
|
||||
}
|
||||
|
@ -24,7 +22,7 @@ impl TerminalDb {
|
|||
pub async fn update_workspace_id(
|
||||
new_id: WorkspaceId,
|
||||
old_id: WorkspaceId,
|
||||
item_id: ModelId
|
||||
item_id: ItemId
|
||||
) -> Result<()> {
|
||||
UPDATE terminals
|
||||
SET workspace_id = ?
|
||||
|
@ -34,8 +32,8 @@ impl TerminalDb {
|
|||
|
||||
query! {
|
||||
pub async fn save_working_directory(
|
||||
item_id: ModelId,
|
||||
workspace_id: i64,
|
||||
item_id: ItemId,
|
||||
workspace_id: WorkspaceId,
|
||||
working_directory: PathBuf
|
||||
) -> Result<()> {
|
||||
INSERT OR REPLACE INTO terminals(item_id, workspace_id, working_directory)
|
||||
|
@ -44,10 +42,10 @@ impl TerminalDb {
|
|||
}
|
||||
|
||||
query! {
|
||||
pub fn get_working_directory(item_id: ModelId, workspace_id: WorkspaceId) -> Result<Option<PathBuf>> {
|
||||
SELECT working_directory
|
||||
FROM terminals
|
||||
pub async fn take_working_directory(item_id: ItemId, workspace_id: WorkspaceId) -> Result<Option<PathBuf>> {
|
||||
DELETE FROM terminals
|
||||
WHERE item_id = ? AND workspace_id = ?
|
||||
RETURNING working_directory
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue