Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

tzmfreedom/rustforce

Repository files navigation

crate-name at crates.io crate-name at docs.rs Rust

Rustforce

Salesforce Client for Rust

Usage

use rustforce::{Client, Error};
use rustforce::response::{QueryResponse, ErrorResponse};
use serde::Deserialize;
use std::env;
#[derive(Deserialize, Debug)]
#[serde(rename_all = "PascalCase")]
struct Account {
 #[serde(rename = "attributes")]
 attributes: Attribute,
 id: String,
 name: String,
}
#[derive(Deserialize, Debug)]
struct Attribute {
 url: String,
 #[serde(rename = "type")]
 sobject_type: String,
}
#[tokio::main]
async fn main() -> Result<(), Error> {
 
 let client_id = env::var("SFDC_CLIENT_ID").unwrap();
 let client_secret = env::var("SFDC_CLIENT_SECRET").unwrap();
 let username = env::var("SFDC_USERNAME").unwrap();
 let password = env::var("SFDC_PASSWORD").unwrap();
 let mut client = Client::new(client_id, client_secret);
 client.login_with_credential(username, password).await?;
 let res: QueryResponse<Account> = client.query("SELECT Id, Name FROM Account WHERE id = '0012K00001drfGYQAY'".to_string()).await?;
 println!("{:?}", res);
 Ok(())
}

Authentication

Username Password Flow

let mut client = Client::new(client_id, client_secret);
client.login_with_credential(username, password).await?;

[WIP]Authorization Code Grant

Refresh Token

let r = client.refresh("xxxx").await?;

Query Records

let r: Result<QueryResponse<Account>, Error> = client.query("SELECT Id, Name FROM Account").await?;

Query All Records

let r: Result<QueryResponse<Account>, Error> = client.query_all("SELECT Id, Name FROM Account").await?;

Find By Id

let r: Result<Account, Error> = client.find_by_id("Account", "{sf_id}").await?;

Create Record

let mut params = HashMap::new();
params.insert("Name", "hello rust");
let r = client.create("Account", params).await?;
println!("{:?}", r);

Update Record

let r = client.update("Account", "{sobject_id}", params).await?;

Upsert Record

let r = client.upsert("Account", "{external_key_name}", "{external_key", params).await?;

Delete Record

let r = client.destroy("Account", "{sobject_id}").await?;

Describe Global

let r = client.describe_global().await?;

Describe SObject

let r = client.describe("Account").await?;

Versions

let versions = client.versions().await?;

Search(SOSL)

let r = client.search("FIND {Rust}").await?;

About

Salesforce REST API Client by Rust

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5

AltStyle によって変換されたページ (->オリジナル) /