API frame needs some way of setting up all the things in the db before we can use it'
This commit is contained in:
commit
2c3c2efd03
1602
api/Cargo.lock
generated
Normal file
1602
api/Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
9
api/Cargo.toml
Normal file
9
api/Cargo.toml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[package]
|
||||||
|
name = "bubble"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
tokio = { version = "1", features = [ "full" ] }
|
||||||
|
serde = "1.0.213"
|
||||||
|
rocket = { version = "0.5.1", features = [ "json" ] }
|
41
api/src/channels.rs
Normal file
41
api/src/channels.rs
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
use serde::Serialize;
|
||||||
|
use rocket::serde::json::Json;
|
||||||
|
|
||||||
|
#[derive(Serialize)]
|
||||||
|
enum Type {
|
||||||
|
Voice,
|
||||||
|
Text,
|
||||||
|
Video
|
||||||
|
}
|
||||||
|
#[derive(Serialize)]
|
||||||
|
struct Channel {
|
||||||
|
id: i64,
|
||||||
|
name: String,
|
||||||
|
desc: Option<String>,
|
||||||
|
r#type: Type
|
||||||
|
}
|
||||||
|
|
||||||
|
#[get("/list")]
|
||||||
|
pub async fn list() -> Json<Vec<Channel>> {
|
||||||
|
// TODO
|
||||||
|
Json(vec![])
|
||||||
|
}
|
||||||
|
|
||||||
|
#[post("/create")]
|
||||||
|
pub async fn create() -> Json<Option<Channel>> {
|
||||||
|
// TODO
|
||||||
|
Json(None)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[delete("/delete")]
|
||||||
|
pub async fn delete() -> Json<Option<i64>> {
|
||||||
|
// TODO
|
||||||
|
Json(None)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[post("/update")]
|
||||||
|
pub async fn update() -> Json<Option<Channel>> {
|
||||||
|
// TODO
|
||||||
|
Json(None)
|
||||||
|
}
|
||||||
|
|
14
api/src/invites.rs
Normal file
14
api/src/invites.rs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
use rocket::serde::json::Json;
|
||||||
|
use serde::Serialize;
|
||||||
|
|
||||||
|
#[derive(Serialize)]
|
||||||
|
pub struct User {
|
||||||
|
id: i64,
|
||||||
|
name: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[get("/<id>")]
|
||||||
|
pub async fn invite_user(id: i64) -> Json<Option<User>> {
|
||||||
|
// First we check to see if the id is present in the invites table
|
||||||
|
Json(None)
|
||||||
|
}
|
17
api/src/main.rs
Normal file
17
api/src/main.rs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#[macro_use] extern crate rocket;
|
||||||
|
mod invites;
|
||||||
|
mod channels;
|
||||||
|
|
||||||
|
#[rocket::main]
|
||||||
|
async fn main() -> Result<(), rocket::Error> {
|
||||||
|
let _ = rocket::build()
|
||||||
|
.mount("/channels", routes![
|
||||||
|
channels::list,
|
||||||
|
channels::create,
|
||||||
|
channels::delete
|
||||||
|
])
|
||||||
|
.mount("/invite", routes![invites::invite_user])
|
||||||
|
.ignite().await?
|
||||||
|
.launch().await?;
|
||||||
|
Ok(())
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user