Api

Version

mediamosa-23

Class

mediamosa_rest_call_statistics_get_historical_uploaded_mediafiles

Code

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_setupmediamosa_settings::LIMIT_MAXmediamosa_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);
    }
  }
}