use crate::{
AddMultipleDebtorsToCategoryRequest, Created, CreditCardAdd, CreditCardAddIntent, Debtor,
DebtorAutogiroApprovals, DebtorBalances, DebtorEvents, Debtors, EmptyResponse, Request,
RequestBuilder, Uuid,
};
pub fn get_add_credit_card_intent(id: Uuid) -> Request<CreditCardAdd> {
RequestBuilder::new(http::Method::GET, "/v1/debtors/addcreditcard/")
.path_param(id)
.build()
}
pub fn create_an_intent_to_add_credit_card_on_debtor(
body: &CreditCardAddIntent,
) -> Request<CreditCardAdd> {
RequestBuilder::new(http::Method::POST, "/v1/debtors/addcreditcard")
.body(body)
.build()
}
pub fn delete_a_saved_credit_card_on_debtor(id: Uuid) -> Request<EmptyResponse> {
RequestBuilder::new(http::Method::DELETE, "/v1/debtors/addcreditcard/")
.path_param(id)
.build()
}
pub fn add_debtors_to_category(
body: &AddMultipleDebtorsToCategoryRequest,
) -> Request<EmptyResponse> {
RequestBuilder::new(http::Method::POST, "/v1/debtors/adddebtorstocategory")
.body(body)
.build()
}
pub fn add_debtor_to_category(
id: Uuid,
debtorpublicid: Uuid,
categorypublicid: Uuid,
) -> Request<EmptyResponse> {
RequestBuilder::new(http::Method::POST, "/v1/debtors/adddebtortocategory/")
.path_param(id)
.query_param("debtorpublicid", debtorpublicid)
.query_param("categorypublicid", categorypublicid)
.build()
}
pub fn anonymize_debtor_gdpr(id: Uuid) -> Request<EmptyResponse> {
RequestBuilder::new(http::Method::PUT, "/v1/debtors/anonymize/")
.path_param(id)
.build()
}
pub fn autogiro_approval_xml(id: Uuid) -> Request<DebtorAutogiroApprovals> {
RequestBuilder::new(http::Method::GET, "/v1/debtors/autogiroapprovalxmls/")
.path_param(id)
.build()
}
pub fn debtor_balances(id: Uuid) -> Request<DebtorBalances> {
RequestBuilder::new(http::Method::GET, "/v1/debtors/balances/")
.path_param(id)
.build()
}
pub fn get_a_debtor(id: Uuid) -> Request<Debtor> {
RequestBuilder::new(http::Method::GET, "/v1/debtors/debtor/")
.path_param(id)
.build()
}
pub fn update_a_debtor(body: &Debtor) -> Request<EmptyResponse> {
RequestBuilder::new(http::Method::PUT, "/v1/debtors/debtor")
.body(body)
.build()
}
pub fn create_a_debtor(body: &Debtor) -> Request<Created> {
RequestBuilder::new(http::Method::POST, "/v1/debtors/debtor")
.body(body)
.build()
}
pub fn delete_a_debtor(id: Uuid) -> Request<EmptyResponse> {
RequestBuilder::new(http::Method::DELETE, "/v1/debtors/debtor/")
.path_param(id)
.build()
}
pub fn get_debtor_by_debtor_number(id: Uuid, debtorno: &str) -> Request<Debtor> {
RequestBuilder::new(http::Method::GET, "/v1/debtors/debtorbydebtorno/")
.path_param(id)
.query_param("debtorno", debtorno)
.build()
}
pub fn get_debtor_events(id: Uuid) -> Request<DebtorEvents> {
RequestBuilder::new(http::Method::GET, "/v1/debtors/debtorevents/")
.path_param(id)
.build()
}
pub fn get_all_debtors(
id: Uuid,
offset: Option<i32>,
limit: Option<i32>,
sortingfield: Option<&str>,
asc: Option<bool>,
) -> Request<Debtors> {
RequestBuilder::new(http::Method::GET, "/v1/debtors/debtors/")
.path_param(id)
.query_param_opt("offset", offset)
.query_param_opt("limit", limit)
.query_param_opt("sortingfield", sortingfield)
.query_param_opt("asc", asc)
.build()
}
#[allow(clippy::too_many_arguments)]
pub fn get_all_debtors_extra(
id: Uuid,
filter: &str,
offset: Option<i32>,
limit: Option<i32>,
sortingfield: Option<&str>,
asc: Option<bool>,
excludeinactive: Option<bool>,
categorypublicid: Option<Uuid>,
deliverymethod: Option<&str>,
) -> Request<Debtors> {
RequestBuilder::new(http::Method::GET, "/v1/debtors/debtors/")
.path_param(id)
.query_param("filter", filter)
.query_param_opt("offset", offset)
.query_param_opt("limit", limit)
.query_param_opt("sortingfield", sortingfield)
.query_param_opt("asc", asc)
.query_param_opt("excludeinactive", excludeinactive)
.query_param_opt("categorypublicid", categorypublicid)
.query_param_opt("deliverymethod", deliverymethod)
.build()
}
pub fn create_update_multiple_debtors(body: &Debtors) -> Request<EmptyResponse> {
RequestBuilder::new(http::Method::POST, "/v1/debtors/debtors")
.body(body)
.build()
}
pub fn get_debtors_by_debtor_external_id(
id: Uuid,
externalid: &str,
offset: Option<i32>,
limit: Option<i32>,
sortingfield: Option<&str>,
asc: Option<bool>,
) -> Request<Debtors> {
RequestBuilder::new(http::Method::GET, "/v1/debtors/debtorsbyexternalid/")
.path_param(id)
.query_param("externalid", externalid)
.query_param_opt("offset", offset)
.query_param_opt("limit", limit)
.query_param_opt("sortingfield", sortingfield)
.query_param_opt("asc", asc)
.build()
}
pub fn get_debtors_by_person_organisation_number(
id: Uuid,
orgno: &str,
countrycode: &str,
offset: Option<i32>,
limit: Option<i32>,
sortingfield: Option<&str>,
asc: Option<bool>,
) -> Request<Debtors> {
RequestBuilder::new(http::Method::GET, "/v1/debtors/debtorsbyorgno/")
.path_param(id)
.query_param("orgno", orgno)
.query_param("countrycode", countrycode)
.query_param_opt("offset", offset)
.query_param_opt("limit", limit)
.query_param_opt("sortingfield", sortingfield)
.query_param_opt("asc", asc)
.build()
}
pub fn delete_debtor_category(id: Uuid, categorypublicid: Uuid) -> Request<EmptyResponse> {
RequestBuilder::new(http::Method::DELETE, "/v1/debtors/deletedebtorcategory/")
.path_param(id)
.query_param("categorypublicid", categorypublicid)
.build()
}
pub fn drop_debtor_from_category(
id: Uuid,
debtorpublicid: Uuid,
categorypublicid: Uuid,
) -> Request<EmptyResponse> {
RequestBuilder::new(
http::Method::DELETE,
"/v1/debtors/deletedebtorfromcategory/",
)
.path_param(id)
.query_param("debtorpublicid", debtorpublicid)
.query_param("categorypublicid", categorypublicid)
.build()
}