use eiktyrner::{content, HttpClient};
use crate::{Param, PathAndQueryBuilder, Result};
use crate::Client;
use crate::models::{
CreatedView,
DateTime,
Guid,
IncomingPaymentRequestView,
IncomingPaymentsView,
OutgoingPaymentStatusView,
OutgoingPaymentStatusesView,
OutgoingPaymentView,
PaymentMatchResultsView,
PaymentMatchesView,
SwishPaymentStatusView,
UnhandledPaymentView,
UnhandledPaymentsView,
};
impl Client {
pub async fn payments_cancel_swish_payment_request(&self,id: String,
) -> Result<()> {
let path_and_query = PathAndQueryBuilder::new()
.url(Param::value("v1"))
.url(Param::value("payments"))
.url(Param::value("swish"))
.url(Param::value(id))
.build();
let request = self.new_request(
http::method::Method::DELETE,
path_and_query,
)
.body(content::Empty).expect("setting json body");
self.client.send::<_, content::Empty>(request).await
}
pub async fn payments_create_swish_payment_request(&self,id: String,
phone: String,
message: Option<String>,
) -> Result<CreatedView> {
let path_and_query = PathAndQueryBuilder::new()
.url(Param::value("v1"))
.url(Param::value("payments"))
.url(Param::value("swish"))
.url(Param::value(id))
.query("phone", Param::value(phone))
.query("message", Param::opt(message))
.build();
let request = self.new_request(
http::method::Method::POST,
path_and_query,
)
.body(content::Empty).expect("setting json body");
self.client.send::<_, content::Json<_>>(request).await
}
pub async fn payments_create_an_outgoing_payment(&self,body: OutgoingPaymentView,
) -> Result<CreatedView> {
let path_and_query = PathAndQueryBuilder::new()
.url(Param::value("v1"))
.url(Param::value("payments"))
.url(Param::value("outgoingpayments"))
.build();
let request = self.new_request(
http::method::Method::POST,
path_and_query,
)
.body(content::Json(body)).expect("setting json body");
self.client.send::<_, content::Json<_>>(request).await
}
pub async fn payments_delete_an_outgoing_payment(&self,id: Guid,
) -> Result<()> {
let path_and_query = PathAndQueryBuilder::new()
.url(Param::value("v1"))
.url(Param::value("payments"))
.url(Param::value("outgoingpayments"))
.url(Param::value(id))
.build();
let request = self.new_request(
http::method::Method::DELETE,
path_and_query,
)
.body(content::Empty).expect("setting json body");
self.client.send::<_, content::Empty>(request).await
}
pub async fn payments_delete_unhandled_payment(&self,paymentpublicid: Guid,
bookkeepingaccount: String,
transactiondate: DateTime,
) -> Result<()> {
let path_and_query = PathAndQueryBuilder::new()
.url(Param::value("v1"))
.url(Param::value("payments"))
.url(Param::value("unhandledpayments"))
.query("paymentpublicid", Param::value(paymentpublicid))
.query("bookkeepingaccount", Param::value(bookkeepingaccount))
.query("transactiondate", Param::value(transactiondate))
.build();
let request = self.new_request(
http::method::Method::DELETE,
path_and_query,
)
.body(content::Empty).expect("setting json body");
self.client.send::<_, content::Empty>(request).await
}
pub async fn payments_get_swish_payment_status(&self,id: String,
) -> Result<SwishPaymentStatusView> {
let path_and_query = PathAndQueryBuilder::new()
.url(Param::value("v1"))
.url(Param::value("payments"))
.url(Param::value("swish"))
.url(Param::value(id))
.build();
let request = self.new_request(
http::method::Method::GET,
path_and_query,
)
.body(content::Empty).expect("setting json body");
self.client.send::<_, content::Json<_>>(request).await
}
pub async fn payments_get_incoming_payments(&self,body: IncomingPaymentRequestView,
) -> Result<IncomingPaymentsView> {
let path_and_query = PathAndQueryBuilder::new()
.url(Param::value("v1"))
.url(Param::value("payments"))
.url(Param::value("incomingpayments"))
.build();
let request = self.new_request(
http::method::Method::PUT,
path_and_query,
)
.body(content::Json(body)).expect("setting json body");
self.client.send::<_, content::Json<_>>(request).await
}
pub async fn payments_get_outgoing_payment_status(&self,id: Guid,
) -> Result<OutgoingPaymentStatusView> {
let path_and_query = PathAndQueryBuilder::new()
.url(Param::value("v1"))
.url(Param::value("payments"))
.url(Param::value("outgoingpayments"))
.url(Param::value(id))
.build();
let request = self.new_request(
http::method::Method::GET,
path_and_query,
)
.body(content::Empty).expect("setting json body");
self.client.send::<_, content::Json<_>>(request).await
}
pub async fn payments_get_outgoing_payment_statuses_list_of_payments(&self,id: Guid,
from: DateTime,
to: DateTime,
) -> Result<OutgoingPaymentStatusesView> {
let path_and_query = PathAndQueryBuilder::new()
.url(Param::value("v1"))
.url(Param::value("payments"))
.url(Param::value("outgoingpayments"))
.url(Param::value(id))
.query("from", Param::value(from))
.query("to", Param::value(to))
.build();
let request = self.new_request(
http::method::Method::GET,
path_and_query,
)
.body(content::Empty).expect("setting json body");
self.client.send::<_, content::Json<_>>(request).await
}
pub async fn payments_get_unhandled_payments(&self,id: Guid,
) -> Result<UnhandledPaymentsView> {
let path_and_query = PathAndQueryBuilder::new()
.url(Param::value("v1"))
.url(Param::value("payments"))
.url(Param::value("unhandledpayments"))
.url(Param::value(id))
.build();
let request = self.new_request(
http::method::Method::GET,
path_and_query,
)
.body(content::Empty).expect("setting json body");
self.client.send::<_, content::Json<_>>(request).await
}
pub async fn payments_match_unhandled_payments(&self,id: Guid,
body: PaymentMatchesView,
) -> Result<PaymentMatchResultsView> {
let path_and_query = PathAndQueryBuilder::new()
.url(Param::value("v1"))
.url(Param::value("payments"))
.url(Param::value("matchpayments"))
.url(Param::value(id))
.build();
let request = self.new_request(
http::method::Method::POST,
path_and_query,
)
.body(content::Json(body)).expect("setting json body");
self.client.send::<_, content::Json<_>>(request).await
}
pub async fn payments_only_for_test_enviroment_create_unhadled_over_payment(&self,body: UnhandledPaymentView,
) -> Result<CreatedView> {
let path_and_query = PathAndQueryBuilder::new()
.url(Param::value("v1"))
.url(Param::value("payments"))
.url(Param::value("unhandledpayments"))
.build();
let request = self.new_request(
http::method::Method::POST,
path_and_query,
)
.body(content::Json(body)).expect("setting json body");
self.client.send::<_, content::Json<_>>(request).await
}
pub async fn payments_only_for_test_enviroment_mark_outgoing_payment_as_succeded_failed(&self,id: Guid,
wassuccessful: bool,
) -> Result<()> {
let path_and_query = PathAndQueryBuilder::new()
.url(Param::value("v1"))
.url(Param::value("payments"))
.url(Param::value("outgoingpayments"))
.url(Param::value(id))
.query("wassuccessful", Param::value(wassuccessful))
.build();
let request = self.new_request(
http::method::Method::PUT,
path_and_query,
)
.body(content::Empty).expect("setting json body");
self.client.send::<_, content::Empty>(request).await
}
}