botx_api_framework/integration/actix/
status_handler.rs1use actix_web::{web::{Data, self, Json}, get, Responder, HttpResponse, http::{header::ContentType, self}, error};
2use anthill_di::DependencyContext;
3use botx_api::{api::{result::ExpressResult, models::Status}, bot::models::*};
4
5use crate::contexts::BotXApiFrameworkContext;
6
7#[get("/status")]
8pub async fn status(request: web::Query<StatusRequest>, ioc_ctx: Data<DependencyContext>) -> impl Responder {
9 log::debug!("{:#?}", request);
10
11 let context = ioc_ctx.resolve::<BotXApiFrameworkContext>().await.expect("Контекст фреймворка не может быть получен из ioc");
12
13 Json(match context.process_status_result(request.0).await {
14 Some(response) => response,
15 None => StatusResponseBuilder::default().with_status(Status::Ok)
16 .with_result(StatusResponseResultBuilder::default()
17 .with_status_message("Бот активен")
18 .with_enabled(true)
19 .build()
20 .unwrap())
21 .build()
22 .unwrap()
23 })
24}