use crate::client::ZtkClient;
use crate::common::http::build_params_with_appkey;
use crate::error::ZtkResult;
use super::request::{MeituanConvertRequest, MeituanOrderQueryRequest};
use super::response::{MeituanConvertResponse, MeituanOrderResponse};
pub struct MeituanApi<'a> {
client: &'a ZtkClient,
}
impl<'a> MeituanApi<'a> {
pub fn new(client: &'a ZtkClient) -> Self {
Self { client }
}
#[allow(dead_code)]
pub(crate) fn client(&self) -> &ZtkClient {
self.client
}
pub async fn convert(
&self,
request: MeituanConvertRequest,
) -> ZtkResult<MeituanConvertResponse> {
let params = build_params_with_appkey(self.client.appkey(), &request)?;
self.client
.http_client()
.get("/api/open_meituan_generateLink.ashx", ¶ms)
.await
}
pub async fn query_orders(
&self,
request: MeituanOrderQueryRequest,
) -> ZtkResult<MeituanOrderResponse> {
let params = build_params_with_appkey(self.client.appkey(), &request)?;
self.client
.http_client()
.get("/api/open_meituan_orderList2.ashx", ¶ms)
.await
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_meituan_api_creation() {
let client = ZtkClient::new("test_appkey").build().unwrap();
let meituan = client.meituan();
assert_eq!(meituan.client().appkey(), "test_appkey");
}
}