/** * @param Hotel $hotel * * @return $this */ public function addHotel($hotel) { $data = array('id' => $hotel->getId()); $document = $this->hotelType->createDocument($hotel->getId()); $document->setData($data); $this->hotelType->addDocument($document); $this->updateHotel($hotel, $document); return $this; }
/** * @test */ public function createNewDocumentOnSave() { $id = 1; $data = 'foobar'; $this->prophesizeGetDocumentThrowsException($id); $this->index->refresh()->shouldBeCalled(); $doc = $this->getDocument($id, $data); $this->type->createDocument($this->getCacheId($id), [Cache::VALUE_FIELD => serialize($data)])->shouldBeCalled()->willReturn($doc); $this->type->addDocument($doc)->shouldBeCalled(); self::assertTrue($this->cache->save($id, $data)); }
/** * Construit les données afin que celles-ci soient indexées (avec les fields corrects) * Méthode non testée et non utilisée pour le moment (Préférable de la tester avant..) * * @param CMbObject $datum the datum you want to construct * @param Elastica\Type $type the type where you want to index the data * * @return array */ function indexingDatum($datum, $type) { $datum_to_index = $this->constructDatum($datum); $document = $type->createDocument($datum['object_id'], $datum_to_index); switch ($datum['type']) { case 'create': $type->addDocument($document); break; case 'store': $type->updateDocument($document); break; case 'delete': $type->deleteDocument($document); break; case 'merge': //nothing to do /*supprimer un des deux et faire un update de l'autre.*/ break; default: return false; } $type->getIndex()->refresh(); $this->deleteDatumTemporaryTable($datum['search_indexing_id']); return true; }