use crate::client::LnBot;
use crate::errors::LnBotError;
use crate::types::{
CreateL402ChallengeRequest, L402ChallengeResponse, L402PayResponse, PayL402Request,
VerifyL402Request, VerifyL402Response,
};
pub struct L402Resource<'a> {
pub(crate) client: &'a LnBot,
pub(crate) prefix: &'a str,
}
impl L402Resource<'_> {
pub async fn create_challenge(
&self,
req: &CreateL402ChallengeRequest,
) -> Result<L402ChallengeResponse, LnBotError> {
self.client
.post(&format!("{}/l402/challenges", self.prefix), Some(req))
.await
}
pub async fn verify(
&self,
req: &VerifyL402Request,
) -> Result<VerifyL402Response, LnBotError> {
self.client
.post(&format!("{}/l402/verify", self.prefix), Some(req))
.await
}
pub async fn pay(&self, req: &PayL402Request) -> Result<L402PayResponse, LnBotError> {
self.client
.post(&format!("{}/l402/pay", self.prefix), Some(req))
.await
}
}