Merge branch 'fronkdev' into 'master'
Snopp/Citycom Service Order Api See merge request fronk/thetool!1643
This commit is contained in:
@@ -56,6 +56,12 @@ class SnoppCitycom extends Modules\ApiControllerModule
|
||||
return \mfResponse::NotFound(["message" => "Home not found"]);
|
||||
}
|
||||
|
||||
// Home must have Status 300, else return deferred
|
||||
if($wohneinheit->status->code < 300) {
|
||||
return \mfResponse::Ok(["message" => "ONT not yet installed. Deferred", "activation_status" => "deferred"]);
|
||||
}
|
||||
|
||||
|
||||
$cc_home_id = \Citycom_OanApiHelper::hausnummerExtrefToCitycomId($wohneinheit->extref);
|
||||
$data["up"] = $bb_up;
|
||||
$data["down"] = $bb_down;
|
||||
@@ -63,6 +69,14 @@ class SnoppCitycom extends Modules\ApiControllerModule
|
||||
$data["execution_date"] = ($execution_date) ? $execution_date->format("Y-m-d") : false;
|
||||
$data["services"] = CITYCOM_OAN_API_SERVICES_FOR_ORDER;
|
||||
|
||||
// check if mgmt ctag is set
|
||||
// so we use the same ctag set for the real services
|
||||
$mgmt_ctag = \PreorderCtag::getFirstActive(["preorder_id" => $preorder->id, "service_type" => "mgmt"]);
|
||||
if($mgmt_ctag) {
|
||||
$data["ctag_range_search"] = $mgmt_ctag->ctag;
|
||||
}
|
||||
|
||||
|
||||
if($preorder->campaign->name == "Citycom - Graz") {
|
||||
$data["product_name"] = "Estmk Greenstream OAN $bb_down/$bb_up";
|
||||
}
|
||||
@@ -71,13 +85,18 @@ class SnoppCitycom extends Modules\ApiControllerModule
|
||||
$cc_api_client = new \Citycom_OanApiClient(CITYCOM_OAN_API_USER, CITYCOM_OAN_API_PASS);
|
||||
$cc_api = new \Citycom_OanApiHelper($cc_api_client);
|
||||
|
||||
// order Service at Citycom and set Preorder to 500 Finished
|
||||
$services = $cc_api->orderServices($preorder, $cc_home_id, $data);
|
||||
if(!$services) {
|
||||
return \mfResponse::InternalServerError(["message" => "Error activating service"]);
|
||||
}
|
||||
|
||||
$preorder->setNewStatusCode(500);
|
||||
$preorder->save();
|
||||
|
||||
return \mfResponse::Ok(["message" => "Services ordered successfully", "activation_status" => "active"]);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -50,6 +50,7 @@ class OperationaldataApicontroller extends mfBaseApicontroller
|
||||
$this->addRoute("/operationaldata/home/:id/connected", [$modules["Snopp"], "setPreorderConnected"], "POST");
|
||||
$this->addRoute("/operationaldata/home/:id/active", [$modules["Snopp"], "setPreorderActive"], "POST");
|
||||
|
||||
//$this->addRoute("/operationaldata/preorder/:id/orderServiceTest", [$modules["SnoppCitycom"], "orderServiceTest"], "POST");
|
||||
$this->addRoute("/operationaldata/preorder/:id/orderService", [$modules["SnoppCitycom"], "orderService"], "POST");
|
||||
|
||||
}
|
||||
|
||||
@@ -671,6 +671,43 @@ class Preorder extends mfBaseModel {
|
||||
|
||||
}
|
||||
|
||||
public function getFreeCtagsInSet($search_ctag) {
|
||||
if(!$this->getProperty("adb_hausnummer")->vlan_stag) {
|
||||
echo "no stag\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
$stag = $this->adb_hausnummer->vlan_stag;
|
||||
if(!$stag) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$ctags_per_home = 1;
|
||||
|
||||
$network_name = "";
|
||||
if($this->adb_hausnummer->netzgebiet->source == "citycom-oan-api") {
|
||||
$network_name = "citycom-oan";
|
||||
$ctags_per_home = count(CITYCOM_OAN_API_SERVICES_FOR_ORDER) + count(CITYCOM_OAN_API_SERVICES_FOR_RESERVATION); // Service VLANS + mgmt VLANS
|
||||
}
|
||||
|
||||
if(!$network_name) {
|
||||
echo "no network\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
// get start of ctag range
|
||||
$first_ctag = $search_ctag - ($search_ctag % $ctags_per_home);
|
||||
|
||||
$ctag_range = [];
|
||||
for($i = $first_ctag; $i < $first_ctag + $ctags_per_home; $i++) {
|
||||
if(!PreorderCtag::getFirstActive(["stag" => $stag, "ctag" => $i, "network" => $network_name])) {
|
||||
$ctag_range[] = $i;
|
||||
}
|
||||
|
||||
}
|
||||
return $ctag_range;
|
||||
}
|
||||
|
||||
public function getNextFreeCtags() {
|
||||
if(!$this->getProperty("adb_hausnummer")->vlan_stag) {
|
||||
echo "no stag\n";
|
||||
@@ -678,6 +715,10 @@ class Preorder extends mfBaseModel {
|
||||
}
|
||||
|
||||
$stag = $this->adb_hausnummer->vlan_stag;
|
||||
if(!$stag) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$new_ctag = false;
|
||||
$ctags_per_home = 1;
|
||||
|
||||
@@ -693,7 +734,7 @@ class Preorder extends mfBaseModel {
|
||||
return false;
|
||||
}
|
||||
|
||||
$last_ctag = PreorderCtag::getLast(["stag" => $stag, "network" => $network_name]);
|
||||
$last_ctag = PreorderCtag::getLastActive(["stag" => $stag, "network" => $network_name]);
|
||||
if(!$last_ctag) {
|
||||
$new_ctag = $first_ctag;
|
||||
} else {
|
||||
@@ -988,6 +1029,7 @@ class Preorder extends mfBaseModel {
|
||||
if($status->code < $new_status->code) {
|
||||
$this->status_id = $new_status->id;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getNetowner() {
|
||||
|
||||
@@ -219,6 +219,11 @@ class PreorderCtag extends mfBaseModel {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static function getLastActive($filter) {
|
||||
$filter["deleted"] = false;
|
||||
return self::getLast($filter);
|
||||
}
|
||||
|
||||
public static function getLast($filter) {
|
||||
$db = FronkDB::singleton();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user