Skip to main content

Crate pcs_external

Crate pcs_external 

Source
Expand description

PCS External API client — v0.3.0.

Phantom-typed gRPC client for the PCS External Developer Platform (chat.external package). OAuth2 JWT auth is built-in via ppoppo-sdk-core’s TokenCache + AuthInterceptor.

§Quick start

use pcs_external::{PcsExternalClientBuilder, scopes::SendOnly};
use pcs_external::types::{Ppnum, RecipientList, TemplateId};

// Build a send-only client from environment variables.
let client = PcsExternalClientBuilder::from_env()
    .ok_or_else(|| pcs_external::Error::Transport("missing env vars".into()))?
    .build::<SendOnly>()
    .await?;

let recipients = RecipientList::from_ppnums(vec![
    Ppnum::try_new("12345678901").map_err(|e| pcs_external::Error::Transport(e.to_string()))?,
])
.map_err(|e| pcs_external::Error::Transport(e.to_string()))?;

let outcome = client.send_alert(&TemplateId::new("tmpl_v1"), &recipients, None).await?;
println!("queued: {:?}", outcome.id);

§Scope sets

Construct the client with the scope set that matches your OAuth2 grant. Method availability is enforced at compile time:

Scope setsend_alertget_send_status
ReadOnly
SendOnly
ReadAndSend
FullAccess

Re-exports§

pub use prost_types;
pub use tonic;

Modules§

scopes
Sealed scope-set type family for crate::PcsExternalClient<S>.
types
Domain types for the PCS External API client hot path.

Structs§

PcsExternalClient
Phantom-typed gRPC client for the PCS External Developer Platform.
PcsExternalClientBuilder
Builder for PcsExternalClient<S>.

Enums§

Error
All errors returned by crate::PcsExternalClient methods.