Support multi trunks
This commit is contained in:
@@ -10,14 +10,17 @@ use actix_web::{web, App,
|
||||
http::header::ContentType,
|
||||
Responder,
|
||||
};
|
||||
use actix_cors::Cors;
|
||||
use serde::Deserialize;
|
||||
use database as db;
|
||||
use database::DidTargetType;
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
struct RouteData {
|
||||
struct RouteRequest {
|
||||
#[serde(rename = "Caller-Destination-Number")]
|
||||
dest_did: String,
|
||||
callee_number: String,
|
||||
#[serde(rename = "Caller-Caller-ID-Number")]
|
||||
caller_number: String,
|
||||
#[serde(rename = "Caller-Network-Addr")]
|
||||
caller_ipaddr: String
|
||||
}
|
||||
@@ -27,13 +30,15 @@ struct JsonDid {
|
||||
did_number: String,
|
||||
target_type: String,
|
||||
target: String,
|
||||
trunk: String,
|
||||
active: bool
|
||||
}
|
||||
|
||||
async fn route_did(form_data: web::Form<RouteData>) -> impl Responder {
|
||||
let did = form_data.dest_did.clone();
|
||||
let caller_ipaddr = form_data.caller_ipaddr.clone();
|
||||
let xml = httapi::route_call(did, caller_ipaddr);
|
||||
async fn route_did(request: web::Form<RouteRequest>) -> impl Responder {
|
||||
let callee_number = request.callee_number.clone();
|
||||
let caller_number = request.caller_number.clone();
|
||||
let caller_ipaddr = request.caller_ipaddr.clone();
|
||||
let xml = httapi::route_call(callee_number, caller_number,caller_ipaddr);
|
||||
HttpResponse::Ok()
|
||||
.content_type(ContentType::xml())
|
||||
.body(xml)
|
||||
@@ -42,7 +47,8 @@ async fn route_did(form_data: web::Form<RouteData>) -> impl Responder {
|
||||
async fn did_post(d: web::Json<JsonDid>) -> impl Responder {
|
||||
let did = d.deref();
|
||||
|
||||
db::add_did(&did.did_number, &did.target_type, &did.target, did.active).unwrap();
|
||||
println!("{:?}", did);
|
||||
db::add_did(&did.did_number, &did.target_type, &did.target, did.active ,&did.trunk).unwrap();
|
||||
HttpResponse::Ok().body("DID added.")
|
||||
}
|
||||
|
||||
@@ -66,6 +72,7 @@ async fn did_patch(d: web::Json<JsonDid>, path: web::Path<i32>) -> impl Responde
|
||||
did_number: d.did_number.clone(),
|
||||
target_type: DidTargetType::from_str(&d.target_type).unwrap(),
|
||||
target: Some(d.target.clone()),
|
||||
trunk: d.trunk.clone(),
|
||||
active: d.active
|
||||
};
|
||||
|
||||
@@ -103,7 +110,9 @@ fn api_config(cfg: &mut web::ServiceConfig) {
|
||||
#[actix_web::main]
|
||||
async fn main() -> std::io::Result<()> {
|
||||
HttpServer::new(|| {
|
||||
let cors = Cors::permissive();
|
||||
App::new()
|
||||
.wrap(cors)
|
||||
.service(
|
||||
web::scope("/api").configure(api_config))
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user