pub struct InitiatePaymentUseCase { /* private fields */ }Expand description
Use Case: Initiate Payment
Initiates a payment transaction for article access. This creates a pending transaction that will be confirmed after on-chain verification.
Responsibilities:
- Validate input (DTO validation)
- Verify article exists and is purchasable
- Verify creator can receive payments
- Check for duplicate transaction signature (prevent replay attacks)
- Create domain Transaction entity
- Persist via repository
- Return response DTO
Implementations§
Source§impl InitiatePaymentUseCase
impl InitiatePaymentUseCase
pub fn new( transaction_repository: Arc<dyn TransactionRepository>, article_repository: Arc<dyn ArticleRepository>, creator_repository: Arc<dyn CreatorRepository>, ) -> Self
pub async fn execute( &self, request: InitiatePaymentRequest, ) -> Result<InitiatePaymentResponse>
Auto Trait Implementations§
impl Freeze for InitiatePaymentUseCase
impl !RefUnwindSafe for InitiatePaymentUseCase
impl Send for InitiatePaymentUseCase
impl Sync for InitiatePaymentUseCase
impl Unpin for InitiatePaymentUseCase
impl !UnwindSafe for InitiatePaymentUseCase
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more