monochromium 0.4.2

A fast, local-first CLI note-taking app for developers
use super::Database;
use crate::types::EditMode;
use rusqlite::params;

impl Database {
    pub fn update_row(
        &self,
        note_id: u32,
        text: String,
        mode: EditMode,
    ) -> Result<String, rusqlite::Error> {
        let pre: String = self.conn.query_row(
            "SELECT content FROM notes WHERE id = ?1",
            params![note_id],
            |row| row.get(0),
        )?;

        match mode {
            EditMode::Append => {
                self.conn.execute(
                    "UPDATE notes SET content = content || ?1 WHERE id = ?2;",
                    params![text, note_id],
                )?;
            }
            EditMode::Overwrite => {
                self.conn.execute(
                    "UPDATE notes SET content = ?1 WHERE id = ?2;",
                    params![text, note_id],
                )?;
            }
        };

        Ok(pre)
    }
}