Api
Version
mediamosa-30Class
mediamosa_rest_call_statistics_get_searchrequestCode
File: /sites/all/modules/mediamosa/modules/statistics/mediamosa_statistics.rest.class.inc
<?php
/**
* URI: /statistics/searchrequest
*
* Method: GET
*
* 1.x: vpx_statistics_get_searchrequest
*
*/
class mediamosa_rest_call_statistics_get_searchrequest extends mediamosa_rest_call {
// ------------------------------------------------------------------ Consts.
// Rest vars;
const MONTH = 'month';
const YEAR = 'year';
// ------------------------------------------------------------------ Get Var Setup.
public function get_var_setup() {
$var_setup = array();
$var_setup = array(
self::VARS => array(
self::MONTH => array(
self::VAR_TYPE => mediamosa_sdk::TYPE_INT,
self::VAR_DESCRIPTION => 'The month of the query.',
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_YES,
self::VAR_RANGE_START => 1,
self::VAR_RANGE_END => 12,
),
self::YEAR => array(
self::VAR_TYPE => mediamosa_sdk::TYPE_INT,
self::VAR_DESCRIPTION => 'The year of the query.',
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_YES,
self::VAR_RANGE_START => 2000,
self::VAR_RANGE_END => 2099,
),
)
);
// Enrich with limit, offset.
$var_setup = self::get_var_setup_range($var_setup, mediamosa_settings::LIMIT_MAX, mediamosa_settings::LIMIT_DEFAULT_STATISTICS);
// Enrich with required REST vars.
return self::get_var_setup_default($var_setup);
}
// ------------------------------------------------------------------ Do Call.
public function do_call() {
$o_mediamosa = mediamosa::get();
$app_ids = $this->get_param_value_app();
$app_id = reset($app_ids);
$limit = $this->get_param_value_limit();
$offset = $this->get_param_value_offset();
$month = $this->get_param_value(self::MONTH);
$year = $this->get_param_value(self::YEAR);
$a_query = array();
$a_query[mediamosa_db_query::A_FROM][] = '{mediamosa_statistics_search_request}';
// Select this.
$a_query[mediamosa_db_query::A_SELECT_EXPR][] = 'keyword AS word';
$a_query[mediamosa_db_query::A_SELECT_EXPR][] = 'COUNT(keyword) AS count';
$begindate = date('Y-m-d', mktime(0, 0, 0, $month, 1, $year));
$a_query[mediamosa_db_query::A_WHERE][] = sprintf("searched >= '%s'", $begindate);
$a_query[mediamosa_db_query::A_WHERE][] = sprintf("searched < DATE_ADD('%s', INTERVAL 1 MONTH)", $begindate);
$a_query[mediamosa_db_query::A_GROUP_BY][] = 'keyword';
// Limit...
$a_query[mediamosa_db_query::LIMIT] = $limit;
// Offset...
$a_query[mediamosa_db_query::OFFSET] = $offset;
// Do query.
$query = mediamosa_db_query::query_select($a_query, array(mediamosa_db_query::SQL_CALC_FOUND_ROWS => TRUE));
$result = mediamosa_db::db_query($query);
// Set total.
$o_mediamosa->item_count_total = mediamosa_db_query::found_rows();
// Fill items.
foreach ($result as $row) {
$o_mediamosa->add_item($row);
}
}
}