Struct AtpAgent

Source
pub struct AtpAgent<S, T>
where S: AtpSessionStore + Send + Sync, T: XrpcClient + Send + Sync, S::Error: Error + Send + Sync + 'static,
{ /* private fields */ }
Available on crate feature agent only.
Expand description

An ATP “Agent”. Manages session token lifecycles and provides convenience methods.

This will be deprecated in the near future. Use Agent directly with a CredentialSession instead:

§Example

use atrium_api::agent::atp_agent::{store::MemorySessionStore, CredentialSession};
use atrium_api::agent::Agent;
use atrium_xrpc_client::reqwest::ReqwestClient;

let session = CredentialSession::new(
    ReqwestClient::new("https://bsky.social"),
    MemorySessionStore::default(),
);
let agent = Agent::new(session);

Implementations§

Source§

impl<S, T> AtpAgent<S, T>
where S: AtpSessionStore + Send + Sync, T: XrpcClient + Send + Sync, S::Error: Error + Send + Sync + 'static,

Source

pub fn new(xrpc: T, store: S) -> Self

Create a new agent.

Source

pub async fn login( &self, identifier: impl AsRef<str>, password: impl AsRef<str>, ) -> Result<AtpSession, Error<Error>>

Start a new session with this agent.

Source

pub async fn resume_session( &self, session: AtpSession, ) -> Result<(), Error<Error>>

Source

pub async fn get_session(&self) -> Option<AtpSession>

Get the current session.

Source

pub async fn get_endpoint(&self) -> String

Get the current endpoint.

Source

pub async fn get_labelers_header(&self) -> Option<Vec<String>>

Get the current labelers header.

Source

pub async fn get_proxy_header(&self) -> Option<String>

Get the current proxy header.

Methods from Deref<Target = Agent<Wrapper<CredentialSession<S, T>>>>§

Source

pub async fn did(&self) -> Option<Did>

Returns the DID of the current session.

Source

pub fn api_with_proxy( &self, did: Did, service_type: impl AsRef<str>, ) -> Service<Wrapper<M>>

Configures the atproto-proxy header to be applied on requests.

Returns a new client service with the proxy header configured.

Trait Implementations§

Source§

impl<S, T> Deref for AtpAgent<S, T>
where S: AtpSessionStore + Send + Sync, T: XrpcClient + Send + Sync, S::Error: Error + Send + Sync + 'static,

Source§

type Target = Agent<Wrapper<CredentialSession<S, T>>>

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.

Auto Trait Implementations§

§

impl<S, T> Freeze for AtpAgent<S, T>

§

impl<S, T> !RefUnwindSafe for AtpAgent<S, T>

§

impl<S, T> Send for AtpAgent<S, T>

§

impl<S, T> Sync for AtpAgent<S, T>

§

impl<S, T> Unpin for AtpAgent<S, T>

§

impl<S, T> !UnwindSafe for AtpAgent<S, T>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T, C> Cacheable<C> for T

Source§

fn cached(self, cache: C) -> Cached<T, C>

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<P, T> Throttleable<P> for T
where P: Default,

Source§

fn throttled(self) -> Throttled<T, P>

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.