/** * @param NewConnectionRevision $newRevision * @return ConnectionDto */ public function disassemble(NewConnectionRevision $newRevision) { $connection = $newRevision->getConnection(); $dto = new ConnectionDto(); $dto->revisionNote = $newRevision->getRevisionNote(); // The API will ignore this, but we send it anyway for easier debugging. $dto->revisionNr = $connection->getRevisionNr(); $dto->isActive = $connection->isActive(); $dto->name = $connection->getName(); $dto->id = $connection->getId(); $dto->state = $connection->getState(); $dto->type = $connection->getType(); $dto->metadataUrl = $connection->getMetadataUrl(); $dto->manipulationCode = $connection->getManipulationCode(); $dto->metadata = $this->expand($connection->getAllMetadata()); $dto->arpAttributes = $connection->getArpAttributes()->toArray(); $dto->disableConsentConnections = $this->disassembleReferences($connection->getConsentDisabledConnections()); $dto->allowedConnections = $this->disassembleReferences($connection->getAccess()->getAllowedConnections()); $dto->blockedConnections = $this->disassembleReferences($connection->getAccess()->getBlockedConnections()); $dto->allowAllEntities = $connection->getAccess()->isAllowAll(); $dto->createdAtDate = $connection->getCreatedDate()->format('c'); $dto->updatedAtDate = $connection->getUpdatedAtDate()->format('c'); return $dto; }
/** * @param NewConnectionRevision $newRevision * @return Connection */ public function update(NewConnectionRevision $newRevision) { $url = $this->getConnectionUrl($newRevision->getConnection()->getId()); $request = $this->client->put($this->client->getBaseUrl() . $url, $this->HEADERS, $this->serializer->serialize($this->disassembler->disassemble($newRevision), 'json')); $response = $request->send(); $this->statusCodeValidator->validate(201, $url, $request, $response); return $this->mapJsonToConnection($response->getBody(true)); }