Files
thetool/application/Api/v1/Modules/Operationaldata/SnoppCitycom.php
Frank Schubert fdf1291d17 Citycom API
2025-07-29 13:34:13 +02:00

85 lines
2.6 KiB
PHP

<?php
namespace application\Api\v1\Modules\Operationaldata;
use application\Api\v1\Modules;
require_once(APPDIR."/Api/v1/Modules/ApiControllerModule.php");
/*
* API Endpoints for Operationaldata from SNOPP
*/
class SnoppCitycom extends Modules\ApiControllerModule
{
public function init()
{
}
public function orderService($req_id) {
if(!$req_id) {
return \mfResponse::BadRequest(["message" => "id missing"]);
}
$bb_up = $this->post["bb_up"];
$bb_down = $this->post["bb_down"];
$execution_date = false;
if($this->post["execution_date"]) {
try {
$execution_date = new DateTime($this->post["execution_date"]);
} catch(\Exception $e) {
return mfResponse::BadRequest(["message" => "Invalid Timestamp format"]);
}
}
if(!is_numeric($bb_down) || !$bb_down || !is_numeric($bb_up) || !$bb_up || !$bb_down > 10000 || $bb_up > 10000) {
return \mfResponse::BadRequest(["message" => "Invalid bandwidth"]);
}
$wohneinheit = false;
if(is_numeric($req_id)) {
$id = $req_id;
$wohneinheit = new \ADBWohneinheit($id);
}
if(!$wohneinheit || !$wohneinheit->id) {
$oaid = $req_id;
$wohneinheit = \ADBWohneinheitModel::getFirst(["oaid" => $oaid]);
if (!$wohneinheit) {
return \mfResponse::NotFound(["message" => "Home not found"]);
}
}
$preorder = \PreorderModel::getFirstActive(["adb_wohneinheit_id" => $wohneinheit->id]);
if(!$preorder) {
return \mfResponse::NotFound(["message" => "Home not found"]);
}
$cc_home_id = \Citycom_OanApiHelper::hausnummerExtrefToCitycomId($wohneinheit->extref);
$data["bb_up"] = $bb_up;
$data["bb_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;
if($preorder->campaign->name == "Citycom - Graz") {
$data["product_name"] = "Estmk OAN $bb_down/$bb_up";
}
$cc_api_client = new \Citycom_OanApiClient(CITYCOM_OAN_API_USER, CITYCOM_OAN_API_PASS);
$cc_api = new \Citycom_OanApiHelper($cc_api_client);
if(!$cc_api->orderServices($preorder, $cc_home_id, $data)) {
return \mfResponse::InternalServerError(["message" => "Error activating service"]);
}
return false;
}
}