From 03c400ed79720e53e13c03071417af07f1bb03d9 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Wed, 9 Oct 2024 14:35:57 +0200 Subject: [PATCH] Added new Rimoapi library class --- lib/Rimoapi/Rimoapi.php | 183 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 lib/Rimoapi/Rimoapi.php diff --git a/lib/Rimoapi/Rimoapi.php b/lib/Rimoapi/Rimoapi.php new file mode 100644 index 000000000..e60e56118 --- /dev/null +++ b/lib/Rimoapi/Rimoapi.php @@ -0,0 +1,183 @@ + [ + 'method' => 'GET', + 'header' => 'accept: application/json' + ] + ]; + + $qs = http_build_query($params); + //echo $qs."\n"; + + $queryHomeEp = RIMO_API_JSON_URL.RIMO_API_JSON_EP_QUERY_HOME; + $get_url = $queryHomeEp."?".$qs; + $ctx = stream_context_create($ctx_opts); + $log->debug(__METHOD__.": Getting Home to fetch FTU: $get_url"); + $response = file_get_contents($get_url, false, $ctx); + + if($response === false) { + $log->error("Fehler beim auslesen der FTU ".$oaid); + return false; + } + + $resp_data = json_decode($response); + if(!is_object($resp_data)) { + $log->error(__METHOD__.": OAID ".$oaid.": Cannot fetch Home from RIMO! Invalid Response!"); + return false; + } + + return $resp_data; + } + + public static function getOaid($oaid) { + $log = mfLoghandler::singleton(); + + $params = []; + $params['apiKey'] = RIMO_API_JSON_APIKEY; + + $ctx_opts = [ + 'http' => [ + 'method' => 'GET', + 'header' => 'accept: application/json' + ] + ]; + + $qs = http_build_query($params); + //echo $qs."\n"; + + $getOaidEp = RIMO_API_JSON_URL.RIMO_API_JSON_EP_GET_OAID; + $getOaidEp .= "/".$oaid; + $get_url = $getOaidEp."?".$qs; + $ctx = stream_context_create($ctx_opts); + $log->debug(__METHOD__.": Getting OAID from Rimo: $get_url"); + $response = file_get_contents($get_url, false, $ctx); + //var_dump($response);exit; + if($response === false) { + $log->error("Fehler beim abfragen der OAID in RIMO ".$oaid); + return false; + } + + $resp_data = json_decode($response); + if(!is_object($resp_data)) { + $log->error(__METHOD__.": OAID ".$oaid.": Cannot fetch OAID from RIMO! Invalid Response!"); + return false; + } + + return $resp_data; + } + + public static function createOaid($oaid) { + $log = mfLoghandler::singleton(); + + $params = []; + $params['apiKey'] = RIMO_API_JSON_APIKEY; + $params['oaidName'] = $oaid; + + $ctx_opts = [ + 'http' => [ + 'method' => 'POST', + 'header' => 'accept: application/json' + ] + ]; + + $qs = http_build_query($params); + //echo $qs."\n"; + + $createOrderEp = RIMO_API_JSON_URL.RIMO_API_JSON_EP_CREATE_OAID; + $post_url = $createOrderEp."?".$qs; + $ctx = stream_context_create($ctx_opts); + $log->debug(__METHOD__.": Creating OAID in Rimo: $post_url"); + $response = file_get_contents($post_url, false, $ctx); + //var_dump($response);exit; + if($response === false) { + $log->error("Fehler beim Erstellen der OAID in RIMO ".$oaid); + return false; + } + + $resp_data = json_decode($response); + if(!$resp_data->id || !$resp_data->name) { + $log->warning(__METHOD__.": Create OAID returned no ID or oaid name ".$oaid); + return false; + } + + return $resp_data; + } + + public static function unassignOaid($oaid, $ftu_external_id) { + $log = mfLoghandler::singleton(); + + $params = []; + $params['apiKey'] = RIMO_API_JSON_APIKEY; + + $ctx_opts = [ + 'http' => [ + 'method' => 'DELETE', + 'header' => 'accept: application/json' + ] + ]; + + $qs = http_build_query($params); + + $unassignEp = RIMO_API_JSON_URL.RIMO_API_JSON_EP_UNASSIGN_OAID_TO_FTU; + $unassignEp = str_replace("{oaidName}", $oaid, $unassignEp); + $unassignEp = str_replace("{ftuExternalId}", $ftu_external_id, $unassignEp); + + $delete_url = $unassignEp."?".$qs; + $ctx = stream_context_create($ctx_opts); + $log->debug(__METHOD__.": Unassigning OAID from FTU $ftu_external_id: $delete_url"); + $response = file_get_contents($delete_url, false, $ctx); + + if($response === false) { + $log->error("Fehler beim Unassignen der OAID in RIMO ".$oaid.": $delete_url"); + return false; + } + + $resp_data = json_decode($response); + return $resp_data; + } + + public static function assignOaid($oaid, $ftu_external_id) { + $log = mfLoghandler::singleton(); + + $params = []; + $params['apiKey'] = RIMO_API_JSON_APIKEY; + + $ctx_opts = [ + 'http' => [ + 'method' => 'POST', + 'header' => 'accept: application/json' + ] + ]; + + $qs = http_build_query($params); + + $assignEp = RIMO_API_JSON_URL.RIMO_API_JSON_EP_ASSIGN_OAID_TO_FTU; + $assignEp = str_replace("{oaidName}", $oaid, $assignEp); + $assignEp = str_replace("{ftuExternalId}", $ftu_external_id, $assignEp); + + $post_url = $assignEp."?".$qs; + $ctx = stream_context_create($ctx_opts); + $log->debug(__METHOD__.": Assigning OAID to current FTU $ftu_external_id: $post_url"); + $response = file_get_contents($post_url, false, $ctx); + + if($response === false) { + $log->error("Fehler beim Assignen der OAID ".$oaid." in RIMO ".$oaid); + return false; + } + + $resp_data = json_decode($response); + return $resp_data; + } +} \ No newline at end of file