pub struct Service { /* private fields */ }

Implementations§

source§

impl Service

source

pub async fn new( cfg: Arc<Configuration>, database: Arc<Box<dyn Database>> ) -> Service

source

pub async fn whitelist_info_hash( &self, info_hash: String ) -> Result<(), ServiceError>

Add a torrent to the tracker whitelist.

Errors

Will return an error if the HTTP request failed (for example if the tracker API is offline) or if the tracker API returned an error.

source

pub async fn remove_info_hash_from_whitelist( &self, info_hash: String ) -> Result<(), ServiceError>

Remove a torrent from the tracker whitelist.

Errors

Will return an error if the HTTP request failed (for example if the tracker API is offline) or if the tracker API returned an error.

source

pub async fn get_personal_announce_url( &self, user_id: UserId ) -> Result<String, ServiceError>

Get personal tracker announce url of a user.

Eg: https://tracker:7070/USER_TRACKER_KEY

If the user doesn’t have a not expired tracker key, it will generate a new one and save it in the database.

Errors

Will return an error if the HTTP request to get generated a new user tracker key failed.

source

pub async fn get_torrent_info( &self, info_hash: &str ) -> Result<TorrentInfo, ServiceError>

Get torrent info from tracker.

Errors

Will return an error if the HTTP request to get torrent info fails or if the response cannot be parsed.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere 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> Same<T> for T

§

type Output = T

Should always be Self
source§

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

§

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 Twhere U: TryFrom<T>,

§

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.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more