public function testIntrospectionResponseShouldInitializeMetadata() { $input = json_decode('{ "header": { "query": { "userId": "afd070b6-4315-40cc-975d-747e28bf132a", "sessionId": "5bf5642d-a262-4608-9901-45aa6e87325d" }, "performance": { "durationMs": 666 } }, "metadata": [ { "uri": "Catalog", "meta": { "producer": [], "info": { "sizeKb": 409093, "date": 1447110000, "searchFeedInfo": { "nbDocs": 33210, "nbShards": 1, "setInfos": [ { "setId": "Antidot_Root_Field", "childrenInfos": [], "facetInfos": [ { "afs:t": "FacetTree", "layout": "TREE", "type": "INTEGER", "id": "product_id", "sticky": false, "filter": true }, { "afs:t": "FacetTree", "layout": "TREE", "type": "STRING", "id": "name", "sticky": false, "filter": true }, { "afs:t": "FacetTree", "layout": "TREE", "type": "REAL", "id": "price_from", "sticky": false, "filter": true } ] } ] } } } } ] }'); $config = new AfsHelperConfiguration(); $config->set_helper_format(AfsHelperFormat::HELPERS); $response_helper = new AfsResponseHelper($input, new AfsQuery(), $config); $this->assertNotEmpty($response_helper->get_all_metadata()); $this->assertTrue($response_helper->has_metadata('Catalog')); $this->assertNotNull($response_helper->get_feed_metadata('Catalog')); }
$facet_mgr->add_facet(new AfsFacet('Organization', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('date_parution', AfsFacetType::DATE_TYPE)); $facet_mgr->add_facet(new AfsFacet('geo', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('media', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('person', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('period', AfsFacetType::DATE_TYPE, AfsFacetLayout::INTERVAL)); $facet_mgr->add_facet(new AfsFacet('source', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('taxo_iptc', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('theme', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('type', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('pays', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('annotated_city', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('buildingDate', AfsFacetType::DATE_TYPE, AfsFacetLayout::INTERVAL)); $facet_mgr->add_facet(new AfsFacet('date', AfsFacetType::DATE_TYPE)); $facet_mgr->add_facet(new AfsFacet('stationParRegion', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('ticketPrice', AfsFacetType::INTEGER_TYPE, AfsFacetLayout::INTERVAL)); /** [Facets and Facet manager] */ // Query Manager /** [Query manager] */ $query_mgr = new AfsSearchQueryManager($connector, $config); $reply = $query_mgr->send($query); /** [Query manager] */ // Response Helper /** [Response helper] */ $helper = new AfsResponseHelper($reply, $query, $config); /** [Response helper] */ // Load and apply PHP templates /** [Twig template] */ $template = $twig->loadTemplate('meta_template.html'); echo $template->render($helper->format()); /** [Twig template] */
public function testGetQueryParameter() { $input = json_decode('{ "header": { "query": { "userId": "foo", "sessionId": "bar", "queryParam": [ { "name": "afs:storeContract", "value": "instantSearch" }] }, "user": { }, "performance": { "durationMs": 215 }, "info": { } } }'); $config = new AfsHelperConfiguration(); $query = new AfsQuery(); $response = new AfsResponseHelper($input, $query, $config); $this->assertEquals($response->get_query_parameter('afs:storeContract'), 'instantSearch'); $input = json_decode('{ "header": { "query": { "userId": "foo", "sessionId": "bar", "queryParam": [] }, "user": { }, "performance": { "durationMs": 215 }, "info": { } } }'); $config = new AfsHelperConfiguration(); $query = new AfsQuery(); $response = new AfsResponseHelper($input, $query, $config); $this->assertNotEquals($response->get_query_parameter('afs:storeContract'), 'instantSearch'); }
/** @brief Executes query. * @param $query [in] * @param $format [in] prefered result format. * @return Helper or array depending on chosen $format. */ public function execute($query = null, $format = AfsHelperFormat::HELPERS) { if (!is_null($query)) { if ($query instanceof AfsQuery) { $this->set_query($query); } else { $format = $query; } } $this->config->set_helper_format($format); $query_mgr = new AfsSearchQueryManager($this->connector, $this->config); $reply = $query_mgr->send($this->query); $helper = new AfsResponseHelper($reply, $this->query, $this->config); if (AfsHelperFormat::ARRAYS == $format) { return $helper->format(); } else { return $helper; } }