public function getFromWebserviceImport($wsElement, $document = null, $params = [], $idMapper = null)
{
if ($wsElement->value->data instanceof \stdClass) {
$wsElement->value->data = (array) $wsElement->value->data;
}
if (empty($wsElement->value->data) or is_array($wsElement->value->data)) {
$this->data = $wsElement->value->data;
if ($this->data["internal"]) {
if (intval($this->data["internalId"]) > 0) {
$id = $this->data["internalId"];
if ($this->data["internalType"] == "document") {
if ($idMapper) {
$id = $idMapper->getMappedId("document", $id);
}
$referencedDocument = Document::getById($id);
if (!$referencedDocument instanceof Document) {
if ($idMapper && $idMapper->ignoreMappingFailures()) {
$idMapper->recordMappingFailure("document", $this->getDocumentId(), $this->data["internalType"], $this->data["internalId"]);
} else {
throw new \Exception("cannot get values from web service import - link references unknown document with id [ " . $this->data["internalId"] . " ] ");
}
}
} elseif ($this->data["internalType"] == "asset") {
if ($idMapper) {
$id = $idMapper->getMappedId("document", $id);
}
$referencedAsset = Asset::getById($id);
if (!$referencedAsset instanceof Asset) {
if ($idMapper && $idMapper->ignoreMappingFailures()) {
$idMapper->recordMappingFailure("document", $this->getDocumentId(), $this->data["internalType"], $this->data["internalId"]);
} else {
throw new \Exception("cannot get values from web service import - link references unknown asset with id [ " . $this->data["internalId"] . " ] ");
}
}
}
}
}
} else {
throw new \Exception("cannot get values from web service import - invalid data");
}
}