use crate::{
CardRefundPayment, CommentAction, CommonActionEvents, Created, CreditCardPayment,
CreditCardPaymentIntent, Date, DeliveryMethodType, EmptyResponse, ReconciliationInvoiceAction,
ReconciliationInvoiceActionEntry, ReconciliationInvoiceActionSubs,
RegisterReconciliationPayment, Request, RequestBuilder, SendReconciliationInvoiceReminder,
SwishRefundPayment, Uuid,
};
pub fn get_reconciliation_invoice(id: Uuid) -> Request<ReconciliationInvoiceAction> {
RequestBuilder::new(http::Method::GET, "/v1/reconciliationinvoice/action/")
.path_param(id)
.build()
}
pub fn update_reconciliation_invoice(
id: Uuid,
body: &ReconciliationInvoiceActionEntry,
) -> Request<EmptyResponse> {
RequestBuilder::new(http::Method::PUT, "/v1/reconciliationinvoice/action/")
.path_param(id)
.body(body)
.build()
}
pub fn create_reconciliation_invoice(body: &ReconciliationInvoiceActionEntry) -> Request<Created> {
RequestBuilder::new(http::Method::POST, "/v1/reconciliationinvoice/action")
.body(body)
.build()
}
pub fn delete_a_reconciliation_invoice(id: Uuid) -> Request<EmptyResponse> {
RequestBuilder::new(http::Method::DELETE, "/v1/reconciliationinvoice/action/")
.path_param(id)
.build()
}
pub fn cancel_autogiro_withdrawal(id: Uuid) -> Request<EmptyResponse> {
RequestBuilder::new(http::Method::DELETE, "/v1/reconciliationinvoice/autogiro/")
.path_param(id)
.build()
}
pub fn get_all_closed_reconciliation_invoices(
id: Uuid,
from: Date,
to: Date,
offset: Option<i32>,
limit: Option<i32>,
sortingfield: Option<&str>,
asc: Option<bool>,
) -> Request<ReconciliationInvoiceActionSubs> {
RequestBuilder::new(http::Method::GET, "/v1/reconciliationinvoice/closed/")
.path_param(id)
.query_param("from", from)
.query_param("to", to)
.query_param_opt("offset", offset)
.query_param_opt("limit", limit)
.query_param_opt("sortingfield", sortingfield)
.query_param_opt("asc", asc)
.build()
}
pub fn comment_a_reconciliation_invoice(body: &CommentAction) -> Request<EmptyResponse> {
RequestBuilder::new(http::Method::POST, "/v1/reconciliationinvoice/comment")
.body(body)
.build()
}
pub fn create_credit_card_payment_intent(
body: &CreditCardPaymentIntent,
) -> Request<CreditCardPayment> {
RequestBuilder::new(
http::Method::POST,
"/v1/reconciliationinvoice/creditcardpayment",
)
.body(body)
.build()
}
pub fn cancel_credit_card_payment(id: Uuid) -> Request<EmptyResponse> {
RequestBuilder::new(
http::Method::DELETE,
"/v1/reconciliationinvoice/creditcardpayment/",
)
.path_param(id)
.build()
}
pub fn get_all_events_for_all_reconciliation_invoices(
id: Uuid,
from: Date,
to: Date,
) -> Request<CommonActionEvents> {
RequestBuilder::new(http::Method::GET, "/v1/reconciliationinvoice/events/")
.path_param(id)
.query_param("from", from)
.query_param("to", to)
.build()
}
pub fn get_all_open_reconciliation_invoices(
id: Uuid,
offset: Option<i32>,
limit: Option<i32>,
sortingfield: Option<&str>,
asc: Option<bool>,
) -> Request<ReconciliationInvoiceActionSubs> {
RequestBuilder::new(http::Method::GET, "/v1/reconciliationinvoice/open/")
.path_param(id)
.query_param_opt("offset", offset)
.query_param_opt("limit", limit)
.query_param_opt("sortingfield", sortingfield)
.query_param_opt("asc", asc)
.build()
}
pub fn refund_credit_card_payment(body: &CardRefundPayment) -> Request<EmptyResponse> {
RequestBuilder::new(
http::Method::PUT,
"/v1/reconciliationinvoice/refundcreditcardpayment",
)
.body(body)
.build()
}
pub fn refund_swish_payment(body: &SwishRefundPayment) -> Request<EmptyResponse> {
RequestBuilder::new(
http::Method::PUT,
"/v1/reconciliationinvoice/refundswishpayment",
)
.body(body)
.build()
}
pub fn register_payment_on_a_reconciliation_invoice(
body: &RegisterReconciliationPayment,
) -> Request<Created> {
RequestBuilder::new(
http::Method::POST,
"/v1/reconciliationinvoice/registerpayment",
)
.body(body)
.build()
}
pub fn send_the_reconciliation_invoice(
id: Uuid,
method: &DeliveryMethodType,
isprioritymail: Option<bool>,
iscolorized: Option<bool>,
) -> Request<EmptyResponse> {
RequestBuilder::new(http::Method::PUT, "/v1/reconciliationinvoice/sendinvoice/")
.path_param(id)
.query_param("method", *method)
.query_param_opt("isprioritymail", isprioritymail)
.query_param_opt("iscolorized", iscolorized)
.build()
}
pub fn send_the_reminder_invoice_with_pregenerated_pdf(
body: &SendReconciliationInvoiceReminder,
) -> Request<EmptyResponse> {
RequestBuilder::new(
http::Method::PUT,
"/v1/reconciliationinvoice/sendreminderinvoice",
)
.body(body)
.build()
}