Hosting-Handler

rescale()

Signatur

public function rescale(ProductHosting $productHosting, array $productOptionMapping, array $deltaProductOptionMapping, ProductHostingRescale $rescale): ServerHostingRescaledResponse

Parameter

$productHosting

Das ProductHosting-Modell, auf dem die Aktion ausgeführt wird

  • $productOptionMapping Eine Key-Value-Zuordnung aller productOptions, einschließlich der neuen/geänderten

  • $deltaProductOptionMapping Dasselbe wie 2., aber nur die Delta-/geänderten productOptions, die sich geändert haben

  • $rescale Das ProductHostingRescale-Modell, das manchmal nützlich sein kann (in den meisten Fällen: ignorieren)

Beschreibung

Führt ein Rescale (Up-/Downgrade) des Hostings durch. Die Funktion wird asynchron in einer Queue ausgelöst und erst nachdem das Upgrade bezahlt wurde.

Es sollten nur die geänderten Optionen an die Integration gesendet werden, der gesamte Billing-Teil usw. wird von hostware verarbeitet.

Rückgabewert

Ein leeres ServerHostingRescaledResponse für den Erfolg, eine Exception mit der Nachricht bei einem Fehler. Wenn Du einen Fehler zurückgibst, wird das Rescale als ausstehend markiert und z. B. später von einem Admin ausgeführt. Die neuen productOptions / die neue Preisgestaltung werden dem Benutzer erst dann angewendet, wenn das Rescale erfolgreich war. Beispiel:

return new ServerHostingRescaledResponse()

Beispiel

/**
 * @param ProductHosting $productHosting
 * @return ServerHostingDeletedResponse
 * @throws GuzzleException
 */
public function unlock(ProductHosting $productHosting): ServerHostingDeletedResponse{
        // API request to delete the user
        $res = $this->getClient($productHosting->host)->killUser($productHosting->custom_fields['nextcloudUser']);

        // error handling
        if (isset($res['meta']) && $res['meta']['statuscode'] !== "100") {
		throw new Exception(json_encode($res));
        }

        // success
	return new ServerHostingDeletedResponse();
}
War das hilfreich?