OperationaldataApi: networks can now come from user

This commit is contained in:
Frank Schubert
2025-07-30 18:01:41 +02:00
parent 1188a7b20e
commit 5a3e6f6984
2 changed files with 49 additions and 11 deletions

View File

@@ -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;

View File

@@ -1,6 +1,7 @@
<?php
require_once(APPDIR."/Api/v1/Modules/Operationaldata/Snopp.php");
require_once(APPDIR."/Api/v1/Modules/Operationaldata/SnoppCitycom.php");
use application\Api\v1\Modules;
@@ -32,7 +33,7 @@ class OperationaldataApicontroller extends mfBaseApicontroller
* TODO: Load Api Modules automatically in mfBaseApiController
*/
$modules = [];
foreach (["Snopp"] as $moduleName) {
foreach (["Snopp", "SnoppCitycom"] as $moduleName) {
$classname = "application\\Api\\v1\\Modules\\Operationaldata\\" . $moduleName;
$modules[$moduleName] = new $classname([
"get" => $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;
}
}