Example #1
0
 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'));
 }
Example #2
0
$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] */
Example #3
0
 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');
 }
Example #4
0
 /** @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;
     }
 }