Api

Version

mediamosa-30

Class

mediamosa_rest_call_asset_metadata_property_tagcount

Code

File: /sites/all/modules/mediamosa/modules/asset/metadata/property/mediamosa_asset_metadata_property.rest.class.inc
<?php

/**
 * URI: /tagcount
 *
 * Count the tags per tag per prop_id.
 *
 * FIXME: Why this weird rest call? ITS DB HEAVY. Maybe do group by on val_char_lft.
 *
 * 1.x: media_management_asset_tagcount
 */
class mediamosa_rest_call_asset_metadata_property_tagcount extends mediamosa_rest_call {

  
// ------------------------------------------------------------------ Consts.
  // Rest vars;
  
const PROP_ID 'prop_id';

  
// ------------------------------------------------------------------ Get Var Setup.
  
public function get_var_setup() {
    
$a_var_setup = array(
      
mediamosa_rest_call::VARS => array(
        
self::PROP_ID => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_INT,
          
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_YES,
          
self::DESCRIPTION => 'The prop ID of which the count must be calculated..',
        ),
      ),
    );

    
// Include the limit, offset.
    
$a_var_setup self::get_var_setup_range($a_var_setup);

    
// Enrich with required REST vars.
    
return self::get_var_setup_default($a_var_setup);
  }

  
// ------------------------------------------------------------------ Do Call.
  
public function do_call() {
    
$mediamosa mediamosa::get();

    
// Get the app_id.
    
$app_ids $this->get_param_value_app();
    
$app_id reset($app_ids);

    
// Range.
    
$limit $this->get_param_value_limit();
    
$offset $this->get_param_value_offset();

    
// Prop ID.
    
$prop_id $this->get_param_value(self::PROP_ID);

    
// Get the count.
    
$result mediamosa_asset_metadata::tagcount($app_id$prop_id$offset$limit);

    
// Set the result.
    
$a_item = array();
    foreach (
$result as $a_row) {
      
$a_item['count'] = $a_row['tagcount'];
      
$a_item['tag'] = $a_row[mediamosa_asset_metadata_db::VAL_CHAR];
      
$mediamosa->add_item($a_item);
    }
  }
}