rnacos 0.8.3

Nacos server re-implemented in Rust.
Documentation
use crate::common::appdata::AppShareData;
use crate::health::model::{CheckHealthResult, HealthManagerRequest, HealthManagerResponse};
use actix_web::{web, HttpResponse, Responder};
use std::sync::Arc;

pub mod namespace;

pub(crate) async fn readiness(appdata: web::Data<Arc<AppShareData>>) -> impl Responder {
    if let Ok(Ok(HealthManagerResponse::StatusResult(v))) = appdata
        .health_manager
        .send(HealthManagerRequest::Status)
        .await
    {
        match v {
            CheckHealthResult::Success => HttpResponse::Ok().body("OK"),
            CheckHealthResult::Error(msg) => {
                HttpResponse::ServiceUnavailable().body(format!("error: {}", msg))
            }
        }
    } else {
        HttpResponse::InternalServerError().body("request health_manager error")
    }
}