use crate::api::*;
use crate::{ApiError, ClientConfig, HttpClient, QueryBuilder, RequestOptions};
use reqwest::Method;
pub struct ImportClient {
pub http_client: HttpClient,
}
impl ImportClient {
pub fn new(config: ClientConfig) -> Result<Self, ApiError> {
Ok(Self {
http_client: HttpClient::new(config.clone())?,
})
}
pub async fn import_bills(
&self,
entry: &str,
request: &ImportBillsRequest,
options: Option<RequestOptions>,
) -> Result<PayabliApiResponseImport, ApiError> {
self.http_client
.execute_multipart_request(
Method::POST,
&format!("Import/billsForm/{}", entry),
request.clone().to_multipart(),
None,
options,
)
.await
}
pub async fn import_customer(
&self,
entry: &Entrypointfield,
request: &ImportCustomerRequest,
options: Option<RequestOptions>,
) -> Result<PayabliApiResponseImport, ApiError> {
self.http_client
.execute_multipart_request(
Method::POST,
&format!("Import/customersForm/{}", entry.0),
request.clone().to_multipart(),
QueryBuilder::new()
.int("replaceExisting", request.replace_existing.clone())
.build(),
options,
)
.await
}
pub async fn import_vendor(
&self,
entry: &Entrypointfield,
request: &ImportVendorRequest,
options: Option<RequestOptions>,
) -> Result<PayabliApiResponseImport, ApiError> {
self.http_client
.execute_multipart_request(
Method::POST,
&format!("Import/vendorsForm/{}", entry.0),
request.clone().to_multipart(),
None,
options,
)
.await
}
}