Script Snippets
List of example code scripts to get quick started.
Status & Highlight Color
Workflow
pub fn show() {
let record = exo::get_record()?;
if record.status.to_string() == "status_0" {
return true;
}
else if record.status.to_string() == "status_1" {
return true;
}
return false;
}
pub async fn main() {
let record = exo::get_record()?;
exo::model("set_status", ["status_2", "#2B7D2B"]).await?;
Ok(())
}
pub async fn test() {
main().await?;
}
Service
pub async fn main(ident, color) {
let status = exo::Ident::new(ident);
let record = exo::get_record()?;
exo::db::update_record_value(record.uuid, "status", exo::Value::Ident(status)).await?;
exo::db::update_record_value(record.uuid, "highlight_color", exo::Value::Color(exo::Color::new(color))).await?;
Ok(true)
}
pub async fn test() {
main("new","").await?;
}
Set User Favorites
Workflow
pub fn show() {
let record = exo::get_record()?;
let user = exo::get_user();
let favs = user.get_value("favorites")?;
if favs.iter().any(|r| r.to_string() == record.uuid) {
return false;
}
true
}
pub async fn main() {
exo::rpc_model("add_favorite", []).await?;
Ok(())
}
pub async fn test() {
assert!(show() is bool);
main().await?;
Ok(())
}
Service
pub async fn main() {
exo::db::set_sudo(true);
let user = exo::get_user();
let record = exo::get_record()?;
exo::db::add_favorite(user.uuid, record.uuid).await?;
Ok(())
}
#[test]
pub async fn test() {
main().await?;
Ok(())
}
Remove User Favorite
Workflow
pub fn show() {
let record = exo::get_record()?;
let user = exo::get_user();
let favs = user.get_value("favorites")?;
if favs.iter().any(|r| r.to_string() == record.uuid) {
return true;
}
false
}
pub async fn main() {
exo::rpc_model("remove_favorite", []).await?;
Ok(())
}
pub async fn test() {
assert!(show() is bool);
main().await?;
Ok(())
}
Service
pub async fn main() {
exo::db::set_sudo(true);
let user = exo::get_user();
let record = exo::get_record()?;
exo::db::remove_favorite(user.uuid, record.uuid).await?;
Ok(())
}
#[test]
pub async fn test() {
main().await?;
Ok(())
}