Api
Version
mediamosa-23Class
mediamosa_rest_call_statistics_get_historical_uploaded_mediafilesCode
File: /sites/all/modules/mediamosa/modules/statistics/mediamosa_statistics.rest.inc
<?php
/**
* URI: /statistics/dataupload
* Method: GET
*
* 1.x: vpx_statistics_get_historical_uploaded_mediafiles
*
*/
class mediamosa_rest_call_statistics_get_historical_uploaded_mediafiles extends mediamosa_rest_call {
// ------------------------------------------------------------------ Consts.
// Rest vars;
const USER_ID = 'user_id';
const GROUP_ID = 'group_id';
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,
),
self::USER_ID => array(
self::VAR_TYPE => mediamosa_sdk::TYPE_USER_ID,
self::VAR_DESCRIPTION => 'Owner of the upload.',
self::VAR_RANGE_END => mediamosa_user_db::NAME_LENGTH,
),
self::GROUP_ID => array(
self::VAR_TYPE => mediamosa_sdk::TYPE_GROUP_ID,
self::VAR_DESCRIPTION => 'Group of the upload.',
self::VAR_RANGE_END => mediamosa_user_group_db::GROUP_ID_LENGTH,
),
)
);
// Enrich with limit, offset.
$var_setup = self::get_var_setup_range($var_setup, mediamosa_settings::LIMIT_MAX, mediamosa_settings::LIMIT_DEFAULT_STATISTICS_NO_PAGER);
// 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);
$year = $this->get_param_value(self::YEAR);
$month = $this->get_param_value(self::MONTH);
$user_id = $this->get_param_value(self::USER_ID);
$group_id = $this->get_param_value(self::GROUP_ID);
$limit = $this->get_param_value_limit();
$offset = $this->get_param_value_offset();
$date_begin = strtotime($year . '-' . $month . '-1 00:00:00');
$date_end = strtotime('+1 MONTH', $date_begin);
$a_query = array();
$a_query[mediamosa_db_query::A_FROM][] = "{mediamosa_statistics_file_upload}";
$a_query[mediamosa_db_query::A_SELECT_EXPR] = array('app_id', 'owner_id', 'group_id', 'file_size', 'timestamp');
$a_query[mediamosa_db_query::A_WHERE][] = 'app_id=' . intval($app_id);
// FIXME: timestamp is now UTC.
$a_query[mediamosa_db_query::A_WHERE][] = 'UNIX_TIMESTAMP(timestamp) >= ' . $date_begin;
$a_query[mediamosa_db_query::A_WHERE][] = 'UNIX_TIMESTAMP(timestamp) < ' . $date_end;
if (!is_null($user_id)) {
$a_query[mediamosa_db_query::A_WHERE][] = sprintf("owner_id = '%s'", mediamosa_db::escape_string($user_id));
}
if (!is_null($group_id)) {
$a_query[mediamosa_db_query::A_WHERE][] = sprintf("group_id = '%s'", mediamosa_db::escape_string($group_id));
}
// FIXME: Seem to be missing order by (!)
// 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 => FALSE));
$result = mediamosa_db::db_query($query);
// Fill items.
foreach ($result as $row) {
// UTC -> App timezone.
$row[mediamosa_statistics_file_upload_db::TIMESTAMP] = mediamosa::utcdate2appdate($row[mediamosa_statistics_file_upload_db::TIMESTAMP]);
$o_mediamosa->add_item($row);
}
}
}