use crate::client::QPayClient;
use crate::error::QPayError;
use crate::models::{
PaymentCancelRequest, PaymentCheckRequest, PaymentCheckResponse, PaymentDetail,
PaymentListRequest, PaymentListResponse, PaymentRefundRequest,
};
impl QPayClient {
pub async fn get_payment(&self, payment_id: &str) -> Result<PaymentDetail, QPayError> {
let path = format!("/v2/payment/{}", payment_id);
self.do_request::<(), PaymentDetail>(reqwest::Method::GET, &path, None)
.await
}
pub async fn check_payment(
&self,
req: &PaymentCheckRequest,
) -> Result<PaymentCheckResponse, QPayError> {
self.do_request(reqwest::Method::POST, "/v2/payment/check", Some(req))
.await
}
pub async fn list_payments(
&self,
req: &PaymentListRequest,
) -> Result<PaymentListResponse, QPayError> {
self.do_request(reqwest::Method::POST, "/v2/payment/list", Some(req))
.await
}
pub async fn cancel_payment(
&self,
payment_id: &str,
req: &PaymentCancelRequest,
) -> Result<(), QPayError> {
let path = format!("/v2/payment/cancel/{}", payment_id);
self.do_request_no_response(reqwest::Method::DELETE, &path, Some(req))
.await
}
pub async fn refund_payment(
&self,
payment_id: &str,
req: &PaymentRefundRequest,
) -> Result<(), QPayError> {
let path = format!("/v2/payment/refund/{}", payment_id);
self.do_request_no_response(reqwest::Method::DELETE, &path, Some(req))
.await
}
}