feat(backend): add initial backend

Backend as is can query GitHub for the information that will be
necessary later on in the frontend's pages. It does not cache this
information yet though.

Signed-off-by: Lucien Cartier-Tilet <lucien@phundrak.com>
This commit is contained in:
2023-02-04 12:51:14 +01:00
parent 8413181750
commit 7f217641f0
10 changed files with 2749 additions and 0 deletions

41
src/data.rs Normal file
View File

@@ -0,0 +1,41 @@
use serde::{Serialize, Deserialize};
#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Data {
pub user: User,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct User {
pub newest: Newest,
pub most_starred: MostStarred,
pub pinned: Pinned,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Newest {
pub nodes: Vec<Node>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MostStarred {
pub nodes: Vec<Node>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Pinned {
pub nodes: Vec<Node>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Node {
pub name: String,
pub stargazer_count: i64,
pub fork_count: i64,
}