You've already forked AstralRinth
forked from didirus/AstralRinth
Supporting documents for Mural payouts (#4721)
* wip: gotenberg * Generate and provide supporting docs for Mural payouts * Correct docs * shear * update cargo lock because r-a complains otherwise * Remove local Gotenberg queue and use Redis instead * Store platform_id in database correctly * Address PR comments * Fix up CI * fix rebase * Add timeout to default env vars
This commit is contained in:
@@ -5,7 +5,8 @@ use muralpay::{
|
||||
AccountId, CounterpartyId, CreatePayout, CreatePayoutDetails, Dob,
|
||||
FiatAccountType, FiatAndRailCode, FiatAndRailDetails, FiatFeeRequest,
|
||||
FiatPayoutFee, MuralPay, PayoutMethodId, PayoutRecipientInfo,
|
||||
PhysicalAddress, TokenAmount, TokenFeeRequest, TokenPayoutFee, UsdSymbol,
|
||||
PayoutRequestId, PhysicalAddress, TokenAmount, TokenFeeRequest,
|
||||
TokenPayoutFee, UsdSymbol,
|
||||
};
|
||||
use rust_decimal::{Decimal, dec};
|
||||
use serde::Serialize;
|
||||
@@ -54,6 +55,11 @@ enum PayoutCommand {
|
||||
/// List all payout requests
|
||||
#[clap(alias = "ls")]
|
||||
List,
|
||||
/// Get details for a single payout request
|
||||
Get {
|
||||
/// ID of the payout request
|
||||
payout_request_id: PayoutRequestId,
|
||||
},
|
||||
/// Create a payout request
|
||||
Create {
|
||||
/// ID of the Mural account to send from
|
||||
@@ -140,6 +146,9 @@ async fn main() -> Result<()> {
|
||||
Command::Payout {
|
||||
command: PayoutCommand::List,
|
||||
} => run(of, muralpay.search_payout_requests(None, None).await?),
|
||||
Command::Payout {
|
||||
command: PayoutCommand::Get { payout_request_id },
|
||||
} => run(of, muralpay.get_payout_request(payout_request_id).await?),
|
||||
Command::Payout {
|
||||
command:
|
||||
PayoutCommand::Create {
|
||||
|
||||
@@ -32,6 +32,8 @@ impl MuralPay {
|
||||
#[derive(Debug, Serialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
struct Body {
|
||||
// if we submit `null`, Mural errors; we have to explicitly exclude this field
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
filter: Option<PayoutStatusFilter>,
|
||||
}
|
||||
|
||||
@@ -48,7 +50,7 @@ impl MuralPay {
|
||||
&self,
|
||||
id: PayoutRequestId,
|
||||
) -> Result<PayoutRequest, MuralError> {
|
||||
self.http_get(|base| format!("{base}/api/payouts/{id}"))
|
||||
self.http_get(|base| format!("{base}/api/payouts/payout/{id}"))
|
||||
.send_mural()
|
||||
.await
|
||||
}
|
||||
@@ -606,6 +608,26 @@ pub enum PayoutRecipientInfo {
|
||||
},
|
||||
}
|
||||
|
||||
impl PayoutRecipientInfo {
|
||||
pub fn email(&self) -> &str {
|
||||
match self {
|
||||
PayoutRecipientInfo::Individual { email, .. } => email,
|
||||
PayoutRecipientInfo::Business { email, .. } => email,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn physical_address(&self) -> &PhysicalAddress {
|
||||
match self {
|
||||
PayoutRecipientInfo::Individual {
|
||||
physical_address, ..
|
||||
} => physical_address,
|
||||
PayoutRecipientInfo::Business {
|
||||
physical_address, ..
|
||||
} => physical_address,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Display, Clone, Copy, SerializeDisplay, DeserializeFromStr)]
|
||||
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
|
||||
#[display("{year:04}-{month:02}-{day:02}")]
|
||||
|
||||
Reference in New Issue
Block a user