aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorFuwn <[email protected]>2022-03-08 02:12:28 +0000
committerFuwn <[email protected]>2022-03-08 02:12:28 +0000
commit9430e767aa3f3ddd98c2de71a4770722ae7cf072 (patch)
tree303a551c93eee32f900c9022bbbec5cb6d2ed91b /src/main.rs
parentchore: licensing (diff)
downloadapi-worker-9430e767aa3f3ddd98c2de71a4770722ae7cf072.tar.xz
api-worker-9430e767aa3f3ddd98c2de71a4770722ae7cf072.zip
feat: worker done :star:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs70
1 files changed, 0 insertions, 70 deletions
diff --git a/src/main.rs b/src/main.rs
deleted file mode 100644
index 53481e0..0000000
--- a/src/main.rs
+++ /dev/null
@@ -1,70 +0,0 @@
-// This file is part of api-worker <https://github.com/senpy-club/api-worker>.
-// Copyright (C) 2022-2022 Fuwn <[email protected]>
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, version 3.
-//
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-//
-// Copyright (C) 2022-2022 Fuwn <[email protected]>
-// SPDX-License-Identifier: GPL-3.0-only
-
-#![feature(type_ascription)]
-#![deny(
- warnings,
- nonstandard_style,
- unused,
- future_incompatible,
- rust_2018_idioms,
- unsafe_code
-)]
-#![deny(clippy::all, clippy::pedantic)] // clippy::nursery
-#![recursion_limit = "128"]
-
-#[macro_use]
-extern crate actix_web;
-
-pub mod constants;
-pub mod routes;
-pub mod structures;
-pub mod utils;
-
-#[actix_web::main]
-async fn main() -> std::io::Result<()> {
- dotenv::dotenv().ok();
-
- let store = actix_ratelimit::MemoryStore::new();
-
- actix_web::HttpServer::new(move || {
- actix_web::App::new()
- .wrap(actix_cors::Cors::default().allow_any_origin())
- .wrap(
- actix_ratelimit::RateLimiter::new(
- actix_ratelimit::MemoryStoreActor::from(store.clone()).start(),
- )
- .with_interval(std::time::Duration::from_secs(60))
- .with_max_requests(100),
- )
- .service(routes::index)
- .service(
- actix_web::web::scope("/api/v1")
- .service(routes::github)
- .service(routes::languages)
- .service(routes::language)
- .service(routes::random),
- )
- })
- .bind(format!(
- "0.0.0.0:{}",
- std::env::var("PORT").expect("no port was provided... ~why~")
- ))?
- .run()
- .await
-}