/** * @param \Pipe\Organization $org * @throws \Exception */ public function saveToPipe(\Pipe\Organization $org) { if (count($org->getDaughters())) { foreach ($org->getDaughters() as $daughter) { $postData = array('type' => \Pipe\OrganizationRelationship::TYPE_PARENT, 'rel_owner_org_id' => $org->getPipeId(), 'rel_linked_org_id' => $daughter->getPipeId()); $this->log->write('Saving ' . print_r($postData, true) . 'to pipe drive'); try { $responseData = (new PipeApi())->makeRequest($postData, 'organizationRelationships'); $response = json_decode($responseData, true); } catch (\Exception $e) { $this->logAndForwardException($e); } $this->log->write('Response' . print_r($response, true)); if ($response) { $this->saveToPipe($daughter); if (!$response['success']) { throw new \Exception($response['error']); } else { $daughter->setPipeRelId($response['data']['id']); } } else { throw new \Exception('No RESPONSE!'); } } } }
/** * @param \Pipe\Organization $org */ public function saveToLocal(\Pipe\Organization $org) { $this->getDb()->query(' INSERT INTO organization SET name = :name, pipe_id = :pipe_id, pipe_rel_id = :pipe_rel_id ', array('name' => $org->getName(), 'pipe_id' => $org->getPipeId(), 'pipe_rel_id' => $org->getPipeRelId())); $org->setId($this->getDb()->getLastInsertId()); if (count($org->getDaughters())) { foreach ($org->getDaughters() as $daughter) { $this->saveToLocal($daughter); } } }