/** * Get from document * * @param DocumentInterface $document * @return $this */ public function fromDocument(DocumentInterface $document) { if (null === ($id = $document->getId())) { throw new PelasticInvalidArgumentException("For accessing GET api your document should provide an ID."); } $this->document = $document; }
/** * Build from raw array * * @param RawResponseInterface $raw * @return ResponseInterface */ public function build(RawResponseInterface $raw) { $this->raw = $raw; $metaData = array_only($this->raw->getArray(), ['_version', 'found', '_index', '_type', '_id']); $source = $this->raw['_source']; if (null === ($document = $this->getDocument())) { $this->document = new Document($source, $metaData['_id'], $metaData); } else { $this->document->create($source, $metaData['_id'], $metaData); } return $this; }
/** * Make with all attributes * * @param $index * @param null $type * @param DocumentInterface $document * @param null $id * @param array $params * @return $this */ public function make($index, $type = null, DocumentInterface $document, $id = null, array $params = []) { $this->setIndex($index); if (null !== $type) { $this->setType($type); } if (null !== $id) { $this->setDocumentId($id); } elseif (($id = $document->getId()) !== null) { $this->setDocumentId($id); } if (!empty($params)) { $this->setParams($params); } return $this; }