Api

Version

mediamosa-30

Class

mediamosa_rest_call_update_mediafile

Code

File: /sites/all/modules/mediamosa/modules/asset/mediafile/mediamosa_asset_mediafile.rest.class.inc
<?php

/**
 * URI: /mediafile/$mediafile_id
 * Method: POST
 */
class mediamosa_rest_call_update_mediafile extends mediamosa_rest_call {
  
// ------------------------------------------------------------------ Consts.
  // Rest vars;
  
const MEDIAFILE_ID 'mediafile_id';
  const 
USER_ID 'user_id';
  const 
IS_DOWNLOADABLE 'is_downloadable';
  const 
MOUNT_POINT 'sannas_mount_point';
  const 
IS_ORIGINAL_FILE 'is_original_file';
  const 
FILENAME 'filename';
  const 
TRANSCODE_INHERITS_ACL 'transcode_inherits_acl';
  const 
MEDIAFILE_ID_SOURCE 'mediafile_id_source';
  const 
TAG 'tag';

  
// ------------------------------------------------------------------ Public Functions.
  
public function get_var_setup() {
    
$a_var_setup = array();

    
$a_var_setup = array(
      
self::VARS => array(
        
self::USER_ID => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_USER_ID,
          
self::VAR_DESCRIPTION => 'The owner ID to match.',
          
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_YES,
        ),
        
self::MEDIAFILE_ID => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_MEDIAFILE_ID,
          
self::VAR_DESCRIPTION => 'The mediafile ID.',
          
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_YES,
        ),
        
self::FILENAME => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_FILENAME,
          
self::VAR_DESCRIPTION => 'Change the filename of the file.',
        ),
        
self::URI => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_URI,
          
self::VAR_DESCRIPTION => 'The stream URI.',
        ),
        
self::IS_DOWNLOADABLE => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_BOOL,
          
self::VAR_DESCRIPTION => 'Mediafile can be downloaded.',
        ),
        
self::TRANSCODE_INHERITS_ACL => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_BOOL,
          
self::VAR_DESCRIPTION => 'Any transcodes will inherit ACL settings.',
        ),
        
self::TAG => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_STRING,
          
self::VAR_DESCRIPTION => 'User specified tag.',
          
self::VAR_RANGE_END => mediamosa_asset_mediafile_db::TAG_LENGTH,
        ),
        
self::MOUNT_POINT => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_STRING,
          
self::VAR_DESCRIPTION => 'The location path of the file.',
          
self::VAR_IS_INTERNAL_ONLY => self::VAR_IS_INTERNAL_ONLY_YES,
        ),
      )
    );

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

  public function 
do_call() {
    
$o_mediamosa mediamosa::get();

    
$app_ids $this->get_param_value_app();
    
$app_id reset($app_ids);

    
$mediafile_id $this->get_param_value(mediamosa_asset_mediafile_db::ID);
    
$user_id $this->get_param_value(self::USER_ID);

    
// Must be enabled.
    
mediamosa_webservice_app::webservice_must_be_active(mediamosa_webservice_app::HANDLE_MEDIA_MANAGEMENT$app_ids);

    
// Fields allowed to update.
    
$params = array(
      
mediamosa_asset_mediafile_db::SANNAS_MOUNT_POINT => array(),
      
mediamosa_asset_mediafile_db::IS_ORIGINAL_FILE => array(FALSE => mediamosa_asset_mediafile_db::IS_ORIGINAL_FILE_FALSETRUE => mediamosa_asset_mediafile_db::IS_ORIGINAL_FILE_TRUE),
      
mediamosa_asset_mediafile_db::FILENAME => array(),
      
mediamosa_asset_mediafile_db::URI => array(),
      
mediamosa_asset_mediafile_db::IS_DOWNLOADABLE => array(FALSE => mediamosa_asset_mediafile_db::IS_DOWNLOADABLE_FALSETRUE => mediamosa_asset_mediafile_db::IS_DOWNLOADABLE_TRUE),
      
mediamosa_asset_mediafile_db::TRANSCODE_INHERITS_ACL => array(FALSE => mediamosa_asset_mediafile_db::TRANSCODE_INHERITS_ACL_FALSETRUE => mediamosa_asset_mediafile_db::TRANSCODE_INHERITS_ACL_TRUE),
      
mediamosa_asset_mediafile_db::TAG => array(),
    );

    
$fields = array();
    foreach (
$params as $param => $values) {
      if (!
$this->isset_given_param($param)) {
        
// If its not supplied, skip it.
        
continue;
      }

      
// Get value.
      
$value $this->get_param_value($param);
      if (!empty(
$values)) {
        
assert(isset($values[$value]));
        
$value $values[$value];
      }

      
$fields[$param] = $value;
    }

    
// Update the mediafile.
    
mediamosa_asset_mediafile::update($app_id$mediafile_id$user_id$fields);

    
// Set all OK.
    
$o_mediamosa->set_result_okay();
  }
}