Merge branch 'fronkdev' into 'master'

OperationaldataApi: networks can now come from user

See merge request fronk/thetool!1588
This commit is contained in:
Frank Schubert
2025-07-30 16:03:58 +00:00
2 changed files with 49 additions and 11 deletions
@@ -27,9 +27,9 @@ class SnoppCitycom extends Modules\ApiControllerModule
if($this->post["execution_date"]) { if($this->post["execution_date"]) {
try { try {
$execution_date = new DateTime($this->post["execution_date"]); $execution_date = new \DateTime($this->post["execution_date"]);
} catch(\Exception $e) { } 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); $cc_home_id = \Citycom_OanApiHelper::hausnummerExtrefToCitycomId($wohneinheit->extref);
$data["bb_up"] = $bb_up; $data["up"] = $bb_up;
$data["bb_down"] = $bb_down; $data["down"] = $bb_down;
$data["product_name"] = false; $data["product_name"] = false;
$data["execution_date"] = ($execution_date) ? $execution_date->format("Y-m-d") : false; $data["execution_date"] = ($execution_date) ? $execution_date->format("Y-m-d") : false;
$data["services"] = CITYCOM_OAN_API_SERVICES_FOR_ORDER; $data["services"] = CITYCOM_OAN_API_SERVICES_FOR_ORDER;
@@ -1,6 +1,7 @@
<?php <?php
require_once(APPDIR."/Api/v1/Modules/Operationaldata/Snopp.php"); require_once(APPDIR."/Api/v1/Modules/Operationaldata/Snopp.php");
require_once(APPDIR."/Api/v1/Modules/Operationaldata/SnoppCitycom.php");
use application\Api\v1\Modules; use application\Api\v1\Modules;
@@ -32,7 +33,7 @@ class OperationaldataApicontroller extends mfBaseApicontroller
* TODO: Load Api Modules automatically in mfBaseApiController * TODO: Load Api Modules automatically in mfBaseApiController
*/ */
$modules = []; $modules = [];
foreach (["Snopp"] as $moduleName) { foreach (["Snopp", "SnoppCitycom"] as $moduleName) {
$classname = "application\\Api\\v1\\Modules\\Operationaldata\\" . $moduleName; $classname = "application\\Api\\v1\\Modules\\Operationaldata\\" . $moduleName;
$modules[$moduleName] = new $classname([ $modules[$moduleName] = new $classname([
"get" => $this->get, "get" => $this->get,
@@ -119,14 +120,35 @@ class OperationaldataApicontroller extends mfBaseApicontroller
$return = []; $return = [];
$my_network_ids = []; $my_network_ids = [];
$networks = [];
foreach($this->me->my_networks as $network) {
if($network->id && !in_array($network->id, $my_network_ids)) { $fixed_networks = false;
$my_network_ids[] = $network->id; 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) { foreach($networks as $network) {
if(!in_array($network->id, $my_network_ids)) continue; 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"])) { if(!array_key_exists($wohneinheit_id, $b[$hausnummer_id]["homes"])) {
$b[$hausnummer_id]["homes"][] = [ $home_data = [
'id' => $wohneinheit_id, 'id' => $wohneinheit_id,
'oaid' => $wohneinheit->oaid, 'oaid' => $wohneinheit->oaid,
'num' => (int)$wohneinheit->num, 'num' => (int)$wohneinheit->num,
@@ -292,8 +314,24 @@ class OperationaldataApicontroller extends mfBaseApicontroller
'workorder_name' => ($wohneinheit->rimo_workorder) ? $wohneinheit->rimo_workorder->rimo_name : null, '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_id' => ($wohneinheit->rimo_workorder) ? $woStateNameToId[$wohneinheit->rimo_workorder->rimo_status] : null,
'workorder_state_label' => ($wohneinheit->rimo_workorder) ? $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;
} }
} }