From 5a3e6f6984e2869e1d6ff2283df12496a5064d1c Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Wed, 30 Jul 2025 18:01:41 +0200 Subject: [PATCH] OperationaldataApi: networks can now come from user --- .../Modules/Operationaldata/SnoppCitycom.php | 8 +-- .../Api/v1/OperationaldataApicontroller.php | 52 ++++++++++++++++--- 2 files changed, 49 insertions(+), 11 deletions(-) diff --git a/application/Api/v1/Modules/Operationaldata/SnoppCitycom.php b/application/Api/v1/Modules/Operationaldata/SnoppCitycom.php index a63b35a51..fafa44494 100644 --- a/application/Api/v1/Modules/Operationaldata/SnoppCitycom.php +++ b/application/Api/v1/Modules/Operationaldata/SnoppCitycom.php @@ -27,9 +27,9 @@ class SnoppCitycom extends Modules\ApiControllerModule if($this->post["execution_date"]) { try { - $execution_date = new DateTime($this->post["execution_date"]); + $execution_date = new \DateTime($this->post["execution_date"]); } catch(\Exception $e) { - return mfResponse::BadRequest(["message" => "Invalid Timestamp format"]); + return \mfResponse::BadRequest(["message" => "Invalid Timestamp format"]); } } @@ -57,8 +57,8 @@ class SnoppCitycom extends Modules\ApiControllerModule } $cc_home_id = \Citycom_OanApiHelper::hausnummerExtrefToCitycomId($wohneinheit->extref); - $data["bb_up"] = $bb_up; - $data["bb_down"] = $bb_down; + $data["up"] = $bb_up; + $data["down"] = $bb_down; $data["product_name"] = false; $data["execution_date"] = ($execution_date) ? $execution_date->format("Y-m-d") : false; $data["services"] = CITYCOM_OAN_API_SERVICES_FOR_ORDER; diff --git a/application/Api/v1/OperationaldataApicontroller.php b/application/Api/v1/OperationaldataApicontroller.php index 5c75ea992..86fa2e058 100644 --- a/application/Api/v1/OperationaldataApicontroller.php +++ b/application/Api/v1/OperationaldataApicontroller.php @@ -1,6 +1,7 @@ $this->get, @@ -119,14 +120,35 @@ class OperationaldataApicontroller extends mfBaseApicontroller $return = []; $my_network_ids = []; + $networks = []; - foreach($this->me->my_networks as $network) { - if($network->id && !in_array($network->id, $my_network_ids)) { - $my_network_ids[] = $network->id; + + $fixed_networks = false; + if(array_key_exists("preorder_networks", $this->me->flags) && $this->me->flags["preorder_networks"]) { + $pnetworks = json_decode($this->me->flags["preorder_networks"]); + if(is_array($pnetworks) && count($pnetworks)) { + $fixed_networks = $pnetworks; } + } - $networks = NetworkModel::search(["opsystem" => "snopp"]); + if($fixed_networks) { + foreach($fixed_networks as $network_id) { + $fnetwork = new Network($network_id); + if($fnetwork->id && $fnetwork->opsystem == "snopp") { + $my_network_ids[] = $fnetwork->id; + $networks[] = $fnetwork; + } + } + } else { + foreach($this->me->my_networks as $network) { + if($network->id && !in_array($network->id, $my_network_ids)) { + $my_network_ids[] = $network->id; + } + } + + $networks = NetworkModel::search(["opsystem" => "snopp"]); + } foreach($networks as $network) { if(!in_array($network->id, $my_network_ids)) continue; @@ -275,7 +297,7 @@ class OperationaldataApicontroller extends mfBaseApicontroller } if(!array_key_exists($wohneinheit_id, $b[$hausnummer_id]["homes"])) { - $b[$hausnummer_id]["homes"][] = [ + $home_data = [ 'id' => $wohneinheit_id, 'oaid' => $wohneinheit->oaid, 'num' => (int)$wohneinheit->num, @@ -292,8 +314,24 @@ class OperationaldataApicontroller extends mfBaseApicontroller 'workorder_name' => ($wohneinheit->rimo_workorder) ? $wohneinheit->rimo_workorder->rimo_name : null, 'workorder_state_id' => ($wohneinheit->rimo_workorder) ? $woStateNameToId[$wohneinheit->rimo_workorder->rimo_status] : null, 'workorder_state_label' => ($wohneinheit->rimo_workorder) ? $wohneinheit->rimo_workorder->rimo_status : null, - ]; + + //var_dump($campaign->adb_netzgebiet); + + // add CPE data if Citycom OAN + if($campaign->adb_netzgebiet->source == "citycom-oan-api") { + $home_data["ont_sn"] = ""; + $home_data["ont_gpid"] = ""; + $home_data["ont_mac"] = ""; + $cc_data = PreorderCitycomOan::getFirst(["preorder_id" => $preorder->id]); + if($cc_data) { + if($cc_data->ont_sn) $home_data["ont_sn"] = $cc_data->ont_sn; + if($cc_data->ont_gpid) $home_data["ont_gpid"] = $cc_data->ont_gpid; + if($cc_data->ont_mac) $home_data["ont_mac"] = $cc_data->ont_mac; + } + } + + $b[$hausnummer_id]["homes"][] = $home_data; } }