use async_trait::async_trait;
use serde::Deserialize;
use serde_json::Value;
use to_url::ToUrl;
use crate::client::{REQ_CLIENT};
use crate::parse_url::ParseUrl;
use crate::result::Result;
const UNREGISTER: &str = "/nacos/v1/ns/instance";
#[allow(non_snake_case)]
#[derive(Debug, Default, Clone, Deserialize, ToUrl)]
pub struct UnRegister {
pub ip: String,
pub port: String,
pub namespaceId: Option<String>,
pub clusterName: Option<String>,
pub serviceName: String,
pub groupName: Option<String>,
pub ephemeral: Option<bool>,
}
#[async_trait]
impl ParseUrl for UnRegister{}
impl UnRegister {
pub async fn unregister(&self) -> Result<String> {
let url = self.parse_url(UNREGISTER).await;
let ok = REQ_CLIENT.delete(url).send().await?.text().await?;
Ok(ok)
}
}