Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,2 @@
[target.'cfg(all(windows, target_env = "msvc"))']
rustflags = ["-Ctarget-feature=+crt-static"]

[target.'cfg(all(windows, target_env = "msvc"))'.env]
CFLAGS = "/MT"
CXXFLAGS = "/MT"
2 changes: 2 additions & 0 deletions apps/desktop/src/routes/app.new.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ export const Route = createFileRoute("/app/new")({
words: [],
record_start: null,
record_end: null,
pre_meeting_memo_html: null,
});
await dbCommands.sessionAddParticipant(sessionId, userId);

Expand All @@ -54,6 +55,7 @@ export const Route = createFileRoute("/app/new")({
words: [],
record_start: null,
record_end: null,
pre_meeting_memo_html: null,
});
await dbCommands.sessionAddParticipant(sessionId, userId);

Expand Down
20 changes: 0 additions & 20 deletions crates/db-user/src/extensions_types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,23 +69,3 @@ user_common_derives! {
pub tags: Vec<String>,
}
}

#[cfg(test)]
mod tests {
use super::*;

#[test]
fn test_extension_definition() {
let generator = schemars::gen::SchemaSettings::draft07().into_generator();
let schema = generator.into_root_schema_for::<ExtensionDefinition>();

let current_dir = env!("CARGO_MANIFEST_DIR");
let name = "definition.schema.json";
let config_schema_path = std::path::PathBuf::from(current_dir)
.join("../../extensions/")
.join(name);

let config_schema_content = serde_json::to_string_pretty(&schema).unwrap();
std::fs::write(config_schema_path, config_schema_content).unwrap();
}
}
21 changes: 3 additions & 18 deletions crates/db-user/src/init.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,33 +62,17 @@ pub async fn onboarding(db: &UserDatabase, user_id: impl Into<String>) -> Result
let onboarding_session_id = db.onboarding_session_id();

let thank_you_session = Session {
id: uuid::Uuid::new_v4().to_string(),
user_id: user_id.clone(),
title: "Thank you".to_string(),
created_at: chrono::Utc::now(),
visited_at: chrono::Utc::now(),
calendar_event_id: None,
raw_memo_html: hypr_buffer::opinionated_md_to_html(THANK_YOU_MD).unwrap(),
enhanced_memo_html: None,
conversations: vec![],
words: vec![],
record_start: None,
record_end: None,
..new_default_session(&user_id)
};

let onboarding_session = Session {
id: onboarding_session_id,
user_id: user_id.clone(),
title: "Welcome to Hyprnote".to_string(),
created_at: chrono::Utc::now(),
visited_at: chrono::Utc::now(),
calendar_event_id: Some(onboarding_event.id.clone()),
raw_memo_html: ONBOARDING_RAW_HTML.to_string(),
enhanced_memo_html: None,
conversations: vec![],
words: vec![],
record_start: None,
record_end: None,
..new_default_session(&user_id)
};

let _ = db.upsert_calendar(default_calendar).await?;
Expand Down Expand Up @@ -487,5 +471,6 @@ fn new_default_session(user_id: impl Into<String>) -> Session {
words: vec![],
record_start: None,
record_end: None,
pre_meeting_memo_html: None,
}
}
3 changes: 2 additions & 1 deletion crates/db-user/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ impl std::ops::Deref for UserDatabase {
}

// Append only. Do not reorder.
const MIGRATIONS: [&str; 17] = [
const MIGRATIONS: [&str; 18] = [
include_str!("./calendars_migration.sql"),
include_str!("./configs_migration.sql"),
include_str!("./events_migration.sql"),
Expand All @@ -147,6 +147,7 @@ const MIGRATIONS: [&str; 17] = [
include_str!("./sessions_migration_1.sql"),
include_str!("./sessions_migration_2.sql"),
include_str!("./sessions_migration_3.sql"),
include_str!("./sessions_migration_4.sql"),
];

pub async fn migrate(db: &UserDatabase) -> Result<(), crate::Error> {
Expand Down
4 changes: 4 additions & 0 deletions crates/db-user/src/sessions_migration_4.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ALTER TABLE
sessions
ADD
COLUMN pre_meeting_memo_html TEXT;
16 changes: 13 additions & 3 deletions crates/db-user/src/sessions_ops.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ impl UserDatabase {
title = '' AND
raw_memo_html = '' AND
(enhanced_memo_html IS NULL OR enhanced_memo_html = '') AND
(pre_meeting_memo_html IS NULL OR pre_meeting_memo_html = '') AND
conversations = '[]'",
(),
)
Expand Down Expand Up @@ -199,7 +200,8 @@ impl UserDatabase {
conversations,
words,
record_start,
record_end
record_end,
pre_meeting_memo_html
) VALUES (
:id,
:created_at,
Expand All @@ -212,7 +214,8 @@ impl UserDatabase {
:conversations,
:words,
:record_start,
:record_end
:record_end,
:pre_meeting_memo_html
)
ON CONFLICT(id) DO UPDATE SET
created_at = :created_at,
Expand All @@ -225,7 +228,8 @@ impl UserDatabase {
conversations = :conversations,
words = :words,
record_start = :record_start,
record_end = :record_end
record_end = :record_end,
pre_meeting_memo_html = :pre_meeting_memo_html
RETURNING *",
libsql::named_params! {
":id": session.id.clone(),
Expand All @@ -240,6 +244,7 @@ impl UserDatabase {
":words": serde_json::to_string(&session.words).unwrap(),
":record_start": session.record_start.map(|dt| dt.to_rfc3339()),
":record_end": session.record_end.map(|dt| dt.to_rfc3339()),
":pre_meeting_memo_html": session.pre_meeting_memo_html.clone(),
},
)
.await?;
Expand Down Expand Up @@ -385,13 +390,18 @@ mod tests {
}],
record_start: None,
record_end: None,
pre_meeting_memo_html: Some("pre_meeting_memo_html_1".to_string()),
};

let mut session = db.upsert_session(session).await.unwrap();
assert_eq!(session.raw_memo_html, "raw_memo_html_1");
assert_eq!(session.enhanced_memo_html, None);
assert_eq!(session.title, "test");
assert_eq!(session.words.len(), 1);
assert_eq!(
session.pre_meeting_memo_html,
Some("pre_meeting_memo_html_1".to_string())
);

let sessions = db.list_sessions(None).await.unwrap();
assert_eq!(sessions.len(), 1);
Expand Down
2 changes: 2 additions & 0 deletions crates/db-user/src/sessions_types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ user_common_derives! {
pub words: Vec<hypr_listener_interface::Word>,
pub record_start: Option<DateTime<Utc>>,
pub record_end: Option<DateTime<Utc>>,
pub pre_meeting_memo_html: Option<String>,
}
}

Expand Down Expand Up @@ -57,6 +58,7 @@ impl Session {
.map(|dt| dt.with_timezone(&Utc))
.ok()
}),
pre_meeting_memo_html: row.get(12).expect("pre_meeting_memo_html"),
})
}

Expand Down
1 change: 1 addition & 0 deletions crates/db-user/src/tags_ops.rs
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ mod tests {
words: vec![],
record_start: None,
record_end: None,
pre_meeting_memo_html: None,
})
.await
.unwrap();
Expand Down
2 changes: 1 addition & 1 deletion plugins/db/js/bindings.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ export type ListOrganizationFilter = { search: [number, string] }
export type ListSessionFilter = ({ user_id: string; limit: number | null }) & ({ type: "search"; query: string } | { type: "recentlyVisited" } | { type: "dateRange"; start: string; end: string })
export type Organization = { id: string; name: string; description: string | null }
export type Platform = "Apple" | "Google" | "Outlook"
export type Session = { id: string; created_at: string; visited_at: string; user_id: string; calendar_event_id: string | null; title: string; raw_memo_html: string; enhanced_memo_html: string | null; words: Word[]; record_start: string | null; record_end: string | null }
export type Session = { id: string; created_at: string; visited_at: string; user_id: string; calendar_event_id: string | null; title: string; raw_memo_html: string; enhanced_memo_html: string | null; words: Word[]; record_start: string | null; record_end: string | null; pre_meeting_memo_html: string | null }
export type SpeakerIdentity = { type: "unassigned"; value: { index: number } } | { type: "assigned"; value: { id: string; label: string } }
export type Tag = { id: string; name: string }
export type Template = { id: string; user_id: string; title: string; description: string; sections: TemplateSection[]; tags: string[] }
Expand Down
Loading