From 392d71f5199e0a63d7caddef2d3938a8806eaca0 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Fri, 15 Dec 2023 12:20:43 +0100 Subject: [PATCH] WIP 2023-12-15 --- application/Api/v1/Modules/Preorder/Cif.php | 64 +++++++++++++++++++-- scripts/rimo-import-test.php | 12 ++-- 2 files changed, 67 insertions(+), 9 deletions(-) diff --git a/application/Api/v1/Modules/Preorder/Cif.php b/application/Api/v1/Modules/Preorder/Cif.php index 5706655c3..858d8e27a 100644 --- a/application/Api/v1/Modules/Preorder/Cif.php +++ b/application/Api/v1/Modules/Preorder/Cif.php @@ -13,12 +13,53 @@ class Cif extends Modules\ApiControllerModule { public function init() { } - + + /* + * GET /preorder/:code/clientInstallationFinished + */ public function providerSetCif($code) { - return \mfResponse::InternalServerError(); - //return \mfResponse::Ok(["message" => "in providerSetCif($code)"]); + $code = trim($code); + if(!$code) { + return \mfResponse::NotFound(["message" => "Preorder not found"]); + } + + $preorder = \PreorderModel::getFirst(['ucode' => strtoupper($code), 'partner_id' => $this->me->address_id]); + if(!$preorder) { + // try oaid + $preorder = \PreorderModel::getFirst(['oaid' => strtolower($code), 'partner_id' => $this->me->address_id], "`create` DESC"); + } + if(!$preorder) { + // try as extref + $preorder = \PreorderModel::getFirst(['extref' => $code, 'partner_id' => $this->me->address_id]); + } + + if(!$preorder) { + return \mfResponse::NotFound(["message" => "Preorder not found"]); + } + + + if($preorder->partner_id != $this->me->address_id) { + return \mfResponse::NotFound(["message" => "Preorder not found"]); + } + + + // set status to 200 + if($preorder->status->code < 200) { + $new_status = \PreorderstatusModel::getFirst(["code" => 200]); + if(!$new_status) { + return \mfResponse::InternalServerError(); + } + $preorder->status_id = $new_status->id; + $preorder->save(); + } + + return \mfResponse::Ok(["message" => "Status successfully updated."]); + } + /* + * GET /preorder/customerInstallationFeedback + */ public function getCifData() { if(!array_key_exists("ciftoken", $this->get) || !$this->get['ciftoken']) { @@ -35,10 +76,13 @@ class Cif extends Modules\ApiControllerModule { return \mfResponse::Ok($return); } + /* + * POST /preorder/customerInstallationFeedback + */ public function userSetCif() { return \mfResponse::InternalServerError(); - if(!array_key_exists("ciftoken", $this->get) || !$this->get['ciftoken']) { + if(!array_key_exists("ciftoken", $this->post) || !$this->post['ciftoken']) { return \mfResponse::BadRequest(["message" => "ciftoken missing"]); } @@ -47,6 +91,18 @@ class Cif extends Modules\ApiControllerModule { return \mfResponse::NotFound(["message" => "Invalid ciftoken"]); } + // set status to 200 + if($preorder->status->code < 200) { + $new_status = \PreorderstatusModel::getFirst(["code" => 200]); + if(!$new_status) { + return \mfResponse::InternalServerError(); + } + $preorder->status_id = $new_status->id; + $preorder->save(); + } + + return \mfResponse::Ok(["message" => "Status successfully updated."]); + } diff --git a/scripts/rimo-import-test.php b/scripts/rimo-import-test.php index acd225142..a4d3a5e9d 100755 --- a/scripts/rimo-import-test.php +++ b/scripts/rimo-import-test.php @@ -20,7 +20,7 @@ $mainlog = mfLoghandler::singleton(); $log = new mfLog_File(); $log->init(BASEDIR."/var/log/rimo-import.log"); -$apiOwner = "rml"; +$apiOwner = "estmk"; $apiEdition = "prod"; $apiData = TT_RIMO_API_CREDS[$apiOwner][$apiEdition]; @@ -30,10 +30,10 @@ $apiToken = $apiData["key"]; $epGetClusters = $apiUrl.RIMO_API_JSON_EP_GET_CLUSTERS; $epGetBuildings = $apiUrl.RIMO_API_JSON_EP_GET_BUILDINGS; - +/* if(!defined("RIMO_API_JSON_APIKEY_PROD")) { die("rimo api token not defined!"); -} +}*/ $import_count = 0; @@ -71,12 +71,14 @@ if($responseText === false) { } $clustersResponse = json_decode($responseText); -var_dump($clustersResponse); -exit; +//var_dump($clustersResponse); +//exit; if(is_object($clustersResponse) && property_exists($clustersResponse, "item") && is_array($clustersResponse->item) && count($clustersResponse->item)) { foreach($clustersResponse->item as $cluster) { $cluster_rimo_id = $cluster->id; + echo "$cluster_rimo_id | name: ".$cluster->name."; label: ".$cluster->userLabel."\n"; + continue; $adb_netzgebiet = ADBNetzgebietModel::getFirst(['rimo_id' => $cluster_rimo_id]); if(!$adb_netzgebiet) { echo "Kein Netzgebiet für Salescluster $cluster_rimo_id (".$cluster->name.")\n";