mirror of
https://github.com/fluencelabs/fluid
synced 2025-03-31 17:31:12 +00:00
38 lines
1.1 KiB
Rust
38 lines
1.1 KiB
Rust
use fluence::sdk::*;
|
|
|
|
pub mod database;
|
|
pub mod errors;
|
|
|
|
fn init() {
|
|
logger::WasmLogger::init_with_level(log::Level::Info).unwrap();
|
|
}
|
|
|
|
#[invocation_handler(init_fn = init, side_modules = sqlite)]
|
|
fn run(nickname: String) -> String {
|
|
// Create table for messages storage
|
|
database::query("CREATE TABLE messages(message text, username text)")
|
|
.expect("error on CREATE TABLE");
|
|
|
|
// Insert message 'Hello, username!' using `nickname` as author's username
|
|
database::query(
|
|
format!(
|
|
r#"INSERT INTO messages VALUES("{}","{}")"#,
|
|
"Hello, username!", nickname
|
|
)
|
|
.as_str(),
|
|
)
|
|
.expect("error on INSERT INTO");
|
|
|
|
// Get all messages
|
|
let messages = database::query("SELECT * FROM messages").expect("error on SELECT *");
|
|
log::info!("messages: {:?}", messages);
|
|
|
|
// Get all messages as JSON via SQLite's JSON extension
|
|
database::query(
|
|
"SELECT json_group_array(
|
|
json_object('message', message, 'username', username)
|
|
) AS json_result FROM (SELECT * FROM messages)",
|
|
)
|
|
.expect("error on SELECT as json")
|
|
}
|