Compare commits

..

No commits in common. "bebad3be9b5c13329f7065fbbf3f14cca7031507" and "c059da9d7310563c71bd7c8cdd0340a1b1e33849" have entirely different histories.

5 changed files with 19 additions and 16 deletions

View file

@ -1,7 +1,8 @@
use actix_web::{Scope, web}; use actix_web::{web, Scope};
mod stats; mod stats;
pub fn web() -> Scope { pub fn web() -> Scope {
web::scope("/v1").service(stats::res) web::scope("/v1")
.service(stats::res)
} }

View file

@ -1,6 +1,6 @@
use std::time::SystemTime; use std::time::SystemTime;
use actix_web::{HttpResponse, Responder, get, web}; use actix_web::{get, web, HttpResponse, Responder};
use serde::Serialize; use serde::Serialize;
use crate::Data; use crate::Data;
@ -19,11 +19,8 @@ struct Response {
pub async fn res(data: web::Data<Data>) -> impl Responder { pub async fn res(data: web::Data<Data>) -> impl Responder {
let response = Response { let response = Response {
accounts: 0, accounts: 0,
uptime: SystemTime::now() uptime: SystemTime::now().duration_since(data.start_time).expect("Seriously why dont you have time??").as_secs(),
.duration_since(data.start_time) version: String::from(VERSION.unwrap_or_else(|| "UNKNOWN")),
.expect("Seriously why dont you have time??")
.as_secs(),
version: String::from(VERSION.unwrap_or("UNKNOWN")),
build_number: String::from("how do i implement this?"), build_number: String::from("how do i implement this?"),
}; };

View file

@ -1,4 +1,4 @@
use actix_web::{HttpResponse, Responder, get}; use actix_web::{get, HttpResponse, Responder};
use serde::Serialize; use serde::Serialize;
#[derive(Serialize)] #[derive(Serialize)]
@ -14,7 +14,9 @@ struct UnstableFeatures;
pub async fn res() -> impl Responder { pub async fn res() -> impl Responder {
let response = Response { let response = Response {
unstable_features: UnstableFeatures, unstable_features: UnstableFeatures,
versions: vec![String::from("1")], versions: vec![
String::from("1"),
]
}; };
HttpResponse::Ok().json(response) HttpResponse::Ok().json(response)

View file

@ -1,6 +1,6 @@
use crate::Error;
use serde::Deserialize; use serde::Deserialize;
use tokio::fs::read_to_string; use tokio::fs::read_to_string;
use crate::Error;
#[derive(Debug, Deserialize)] #[derive(Debug, Deserialize)]
pub struct ConfigBuilder { pub struct ConfigBuilder {
@ -14,7 +14,7 @@ pub struct Database {
password: String, password: String,
hostname: String, hostname: String,
database: String, database: String,
port: u16, port: u16
} }
#[derive(Debug, Deserialize)] #[derive(Debug, Deserialize)]
@ -34,17 +34,18 @@ impl ConfigBuilder {
} }
pub fn build(self) -> Config { pub fn build(self) -> Config {
let web = if let Some(web) = self.web { let web = if let Some(web) = self.web {
Web { Web {
url: web.url.unwrap_or(String::from("0.0.0.0")), url: web.url.unwrap_or(String::from("0.0.0.0")),
port: web.port.unwrap_or(8080), port: web.port.unwrap_or(8080),
ssl: web.ssl.unwrap_or_default(), ssl: web.ssl.unwrap_or_default()
} }
} else { } else {
Web { Web {
url: String::from("0.0.0.0"), url: String::from("0.0.0.0"),
port: 8080, port: 8080,
ssl: false, ssl: false
} }
}; };

View file

@ -1,5 +1,5 @@
use actix_web::{App, HttpServer, web};
use std::time::SystemTime; use std::time::SystemTime;
use actix_web::{web, App, HttpServer};
mod config; mod config;
use config::{Config, ConfigBuilder}; use config::{Config, ConfigBuilder};
mod api; mod api;
@ -24,8 +24,10 @@ async fn main() -> Result<(), Error> {
}; };
HttpServer::new(move || { HttpServer::new(move || {
let data = data.clone();
App::new() App::new()
.app_data(web::Data::new(data.clone())) .app_data(web::Data::new(data))
.service(api::versions::res) .service(api::versions::res)
.service(api::v1::web()) .service(api::v1::web())
}) })