[tmp]
This commit is contained in:
parent
f7bd45dff3
commit
90653796cc
|
@ -1,4 +1,5 @@
|
||||||
pub mod auth;
|
pub mod auth;
|
||||||
pub mod signup;
|
pub mod signup;
|
||||||
pub mod totp_authenticators;
|
pub mod totp_authenticators;
|
||||||
pub mod verify_totp_authenticators;
|
pub mod verify_totp_authenticators;
|
||||||
|
pub mod networks;
|
|
@ -0,0 +1,46 @@
|
||||||
|
use serde::{Serialize, Deserialize};
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
||||||
|
pub struct GetNetworksResponse {
|
||||||
|
pub data: Vec<GetNetworksResponseData>,
|
||||||
|
pub metadata: GetNetworksResponseMetadata
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
||||||
|
pub struct GetNetworksResponseData {
|
||||||
|
pub id: String,
|
||||||
|
pub cidr: String,
|
||||||
|
#[serde(rename = "organizationID")]
|
||||||
|
pub organization_id: String,
|
||||||
|
#[serde(rename = "signingCAID")]
|
||||||
|
pub signing_ca_id: String,
|
||||||
|
#[serde(rename = "createdAt")]
|
||||||
|
pub created_at: String, // 2023-03-22T18:55:47.009Z
|
||||||
|
pub name: String,
|
||||||
|
#[serde(rename = "lighthousesAsRelays")]
|
||||||
|
pub lighthouses_as_relays: bool
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
||||||
|
pub struct GetNetworksResponseMetadata {
|
||||||
|
#[serde(rename = "totalCount")]
|
||||||
|
pub total_count: i64,
|
||||||
|
#[serde(rename = "hasNextPage")]
|
||||||
|
pub has_next_page: bool,
|
||||||
|
#[serde(rename = "hasPrevPage")]
|
||||||
|
pub has_prev_page: bool,
|
||||||
|
#[serde(default, skip_serializing_if = "is_none", rename = "prevCursor")]
|
||||||
|
pub prev_cursor: Option<String>,
|
||||||
|
#[serde(default, skip_serializing_if = "is_none", rename = "nextCursor")]
|
||||||
|
pub next_cursor: Option<String>,
|
||||||
|
#[serde(default, skip_serializing_if = "is_none")]
|
||||||
|
pub page: Option<GetNetworksResponseMetadataPage>
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
||||||
|
pub struct GetNetworksResponseMetadataPage {
|
||||||
|
pub count: i64,
|
||||||
|
pub start: i64
|
||||||
|
}
|
||||||
|
|
||||||
|
fn is_none<T>(o: &Option<T>) -> bool { o.is_none() }
|
|
@ -7,9 +7,14 @@ use sea_orm::entity::prelude::*;
|
||||||
pub struct Model {
|
pub struct Model {
|
||||||
#[sea_orm(primary_key, auto_increment = false)]
|
#[sea_orm(primary_key, auto_increment = false)]
|
||||||
pub id: String,
|
pub id: String,
|
||||||
|
pub cidr: String,
|
||||||
#[sea_orm(unique)]
|
#[sea_orm(unique)]
|
||||||
pub organization: String,
|
pub organization: String,
|
||||||
pub ip_block: String,
|
#[sea_orm(unique)]
|
||||||
|
pub signing_ca: String,
|
||||||
|
pub created_at: i64,
|
||||||
|
pub name: String,
|
||||||
|
pub lighthouses_as_relays: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
|
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
|
||||||
|
@ -22,6 +27,14 @@ pub enum Relation {
|
||||||
on_delete = "Cascade"
|
on_delete = "Cascade"
|
||||||
)]
|
)]
|
||||||
Organization,
|
Organization,
|
||||||
|
#[sea_orm(
|
||||||
|
belongs_to = "super::signing_ca::Entity",
|
||||||
|
from = "Column::SigningCa",
|
||||||
|
to = "super::signing_ca::Column::Id",
|
||||||
|
on_update = "Cascade",
|
||||||
|
on_delete = "Cascade"
|
||||||
|
)]
|
||||||
|
SigningCa,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Related<super::organization::Entity> for Entity {
|
impl Related<super::organization::Entity> for Entity {
|
||||||
|
@ -30,4 +43,10 @@ impl Related<super::organization::Entity> for Entity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Related<super::signing_ca::Entity> for Entity {
|
||||||
|
fn to() -> RelationDef {
|
||||||
|
Relation::SigningCa.def()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl ActiveModelBehavior for ActiveModel {}
|
impl ActiveModelBehavior for ActiveModel {}
|
||||||
|
|
|
@ -17,6 +17,15 @@ pub struct Model {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
|
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
|
||||||
pub enum Relation {}
|
pub enum Relation {
|
||||||
|
#[sea_orm(has_one = "super::network::Entity")]
|
||||||
|
Network,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Related<super::network::Entity> for Entity {
|
||||||
|
fn to() -> RelationDef {
|
||||||
|
Relation::Network.def()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl ActiveModelBehavior for ActiveModel {}
|
impl ActiveModelBehavior for ActiveModel {}
|
||||||
|
|
|
@ -6,12 +6,12 @@ pub mod m20230402_162601_create_table_users;
|
||||||
pub mod m20230402_183515_create_table_magic_links;
|
pub mod m20230402_183515_create_table_magic_links;
|
||||||
pub mod m20230402_213712_create_table_session_tokens;
|
pub mod m20230402_213712_create_table_session_tokens;
|
||||||
pub mod m20230402_232316_create_table_organizations;
|
pub mod m20230402_232316_create_table_organizations;
|
||||||
pub mod m20230402_232323_create_table_networks;
|
|
||||||
pub mod m20230402_233043_create_table_api_keys;
|
pub mod m20230402_233043_create_table_api_keys;
|
||||||
pub mod m20230402_233047_create_table_api_keys_scopes;
|
pub mod m20230402_233047_create_table_api_keys_scopes;
|
||||||
mod m20230402_234025_create_table_totp_authenticators;
|
pub mod m20230402_234025_create_table_totp_authenticators;
|
||||||
mod m20230403_002256_create_table_auth_tokens;
|
pub mod m20230403_002256_create_table_auth_tokens;
|
||||||
mod m20230403_142517_create_table_signing_cas;
|
pub mod m20230403_142517_create_table_signing_cas;
|
||||||
|
pub mod m20230403_173431_create_table_networks;
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
impl MigratorTrait for Migrator {
|
impl MigratorTrait for Migrator {
|
||||||
|
@ -21,12 +21,12 @@ impl MigratorTrait for Migrator {
|
||||||
Box::new(m20230402_183515_create_table_magic_links::Migration),
|
Box::new(m20230402_183515_create_table_magic_links::Migration),
|
||||||
Box::new(m20230402_213712_create_table_session_tokens::Migration),
|
Box::new(m20230402_213712_create_table_session_tokens::Migration),
|
||||||
Box::new(m20230402_232316_create_table_organizations::Migration),
|
Box::new(m20230402_232316_create_table_organizations::Migration),
|
||||||
Box::new(m20230402_232323_create_table_networks::Migration),
|
|
||||||
Box::new(m20230402_233043_create_table_api_keys::Migration),
|
Box::new(m20230402_233043_create_table_api_keys::Migration),
|
||||||
Box::new(m20230402_233047_create_table_api_keys_scopes::Migration),
|
Box::new(m20230402_233047_create_table_api_keys_scopes::Migration),
|
||||||
Box::new(m20230402_234025_create_table_totp_authenticators::Migration),
|
Box::new(m20230402_234025_create_table_totp_authenticators::Migration),
|
||||||
Box::new(m20230403_002256_create_table_auth_tokens::Migration),
|
Box::new(m20230403_002256_create_table_auth_tokens::Migration),
|
||||||
Box::new(m20230403_142517_create_table_signing_cas::Migration),
|
Box::new(m20230403_142517_create_table_signing_cas::Migration),
|
||||||
|
Box::new(m20230403_173431_create_table_networks::Migration),
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
use sea_orm_migration::prelude::*;
|
use sea_orm_migration::prelude::*;
|
||||||
use crate::m20230402_232316_create_table_organizations::Organization;
|
use crate::m20230402_232316_create_table_organizations::Organization;
|
||||||
|
use crate::m20230403_142517_create_table_signing_cas::SigningCA;
|
||||||
|
|
||||||
#[derive(DeriveMigrationName)]
|
#[derive(DeriveMigrationName)]
|
||||||
pub struct Migration;
|
pub struct Migration;
|
||||||
|
@ -11,15 +12,27 @@ impl MigrationTrait for Migration {
|
||||||
Table::create()
|
Table::create()
|
||||||
.table(Network::Table)
|
.table(Network::Table)
|
||||||
.col(ColumnDef::new(Network::Id).string().not_null().primary_key())
|
.col(ColumnDef::new(Network::Id).string().not_null().primary_key())
|
||||||
|
.col(ColumnDef::new(Network::Cidr).string().not_null())
|
||||||
.col(ColumnDef::new(Network::Organization).string().not_null().unique_key())
|
.col(ColumnDef::new(Network::Organization).string().not_null().unique_key())
|
||||||
.col(ColumnDef::new(Network::IpBlock).string().not_null())
|
.col(ColumnDef::new(Network::SigningCA).string().not_null().unique_key())
|
||||||
|
.col(ColumnDef::new(Network::CreatedAt).big_integer().not_null())
|
||||||
|
.col(ColumnDef::new(Network::Name).string().not_null())
|
||||||
|
.col(ColumnDef::new(Network::LighthousesAsRelays).boolean().not_null())
|
||||||
.foreign_key(
|
.foreign_key(
|
||||||
ForeignKey::create()
|
ForeignKey::create()
|
||||||
.from(Network::Table, Network::Organization)
|
.from(Network::Table, Network::Organization)
|
||||||
.to(Organization::Table, Organization::Id)
|
.to(Organization::Table, Organization::Id)
|
||||||
.on_delete(ForeignKeyAction::Cascade)
|
.on_delete(ForeignKeyAction::Cascade)
|
||||||
.on_update(ForeignKeyAction::Cascade)
|
.on_update(ForeignKeyAction::Cascade)
|
||||||
).to_owned()
|
)
|
||||||
|
.foreign_key(
|
||||||
|
ForeignKey::create()
|
||||||
|
.from(Network::Table, Network::SigningCA)
|
||||||
|
.to(SigningCA::Table, SigningCA::Id)
|
||||||
|
.on_delete(ForeignKeyAction::Cascade)
|
||||||
|
.on_update(ForeignKeyAction::Cascade)
|
||||||
|
)
|
||||||
|
.to_owned()
|
||||||
).await
|
).await
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,6 +46,10 @@ impl MigrationTrait for Migration {
|
||||||
pub enum Network {
|
pub enum Network {
|
||||||
Table,
|
Table,
|
||||||
Id,
|
Id,
|
||||||
|
Cidr,
|
||||||
Organization,
|
Organization,
|
||||||
IpBlock
|
SigningCA,
|
||||||
|
CreatedAt,
|
||||||
|
Name,
|
||||||
|
LighthousesAsRelays
|
||||||
}
|
}
|
Loading…
Reference in New Issue