Support multi trunks

This commit is contained in:
2026-04-01 22:17:59 -04:00
parent e6a7a40ea3
commit 75aa6129b6
9 changed files with 304 additions and 43 deletions

View File

@@ -7,6 +7,7 @@ use serde::{Serialize};
use diesel_derive_enum::DbEnum;
use std::str::FromStr;
use strum_macros::EnumString;
use crate::schema::dids;
#[derive(Debug, PartialEq, DbEnum, Serialize, EnumString)]
#[db_enum(existing_type_path = "crate::schema::sql_types::DidTargetType")]
@@ -26,23 +27,25 @@ pub enum DidTargetType {
}
#[derive(Debug, Queryable, Selectable, Serialize, AsChangeset)]
#[diesel(table_name = crate::schema::dids)]
#[diesel(table_name = dids)]
#[diesel(check_for_backend(diesel::pg::Pg))]
pub struct Did {
pub id: i32,
pub did_number: String,
pub target_type: DidTargetType,
pub target: Option<String>,
pub active: bool
pub active: bool,
pub trunk: String,
}
#[derive(Insertable)]
#[diesel(table_name = crate::schema::dids)]
#[diesel(table_name = dids)]
pub struct NewDid<'a> {
pub did_number: &'a str,
pub target_type: DidTargetType,
pub target: Option<&'a str>,
pub active: bool
pub active: bool,
pub trunk: &'a str,
}
pub fn connect() -> PgConnection {
@@ -98,24 +101,22 @@ pub fn update_did(d: Did)-> Result<(), Error> {
Ok(())
}
pub fn add_did(did_number: &str, target_type: &str, target: &str, active: bool)
-> Result<Did, Error> {
use crate::schema::dids;
pub fn add_did(did_number: &str, target_type: &str, target: &str, active: bool, trunk: &str)
-> Result<(), Error> {
let mut conn = connect();
let new_did = NewDid {
did_number: did_number,
target_type: DidTargetType::from_str(target_type).unwrap(),
target: Some(target),
active: active
active: active,
trunk: trunk,
};
let did = diesel::insert_into(dids::table)
diesel::insert_into(dids::table)
.values(&new_did)
.returning(Did::as_returning())
.get_result(&mut conn)?;
.execute(&mut conn)?;
Ok(did)
Ok(())
}
pub fn list_did() ->Result<Vec<Did>, Error> {
@@ -123,6 +124,7 @@ pub fn list_did() ->Result<Vec<Did>, Error> {
let mut conn = connect();
let res = dids
.order_by(id.asc())
.load(&mut conn)?;
Ok(res)