Api
Version
mediamosa-21Class
mediamosa_rest_call_asset_supplement_updateCode
File: /sites/all/modules/mediamosa/modules/asset/supplement/mediamosa_asset_supplement.rest.inc
<?php
/**
* URI: /asset/$asset_id/supplement/$supplement_id/update
* /supplement/update (FIXME: this (internal) URL should never would have worked under 1.x?)
* /supplement/$supplement_id/update (deprecated)
* Method: POST
*
* Update the asset supplement.
*
* 1.x media_management_update_asset_supplement
*/
class mediamosa_rest_call_asset_supplement_update extends mediamosa_rest_call {
// ------------------------------------------------------------------ Consts.
// Rest vars;
const ASSET_ID = 'asset_id';
const SUPPLEMENT_ID = 'supplement_id';
const USER_ID = 'user_id';
const OAI_PREFIX = 'oai_prefix';
const OAI_NAMESPACEURI = 'oai_namespaceuri';
const OAI_SCHEMALOCATION = 'oai_schemalocation';
const SUPPLEMENT = 'supplement';
// ------------------------------------------------------------------ Get Var Setup.
public function get_var_setup() {
$a_var_setup = array();
$a_var_setup = array(
self::VARS => array(
self::ASSET_ID => array(
self::VAR_TYPE => mediamosa_type::TYPE_ASSET_ID,
self::VAR_DESCRIPTION => 'The asset ID.',
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_YES,
),
self::SUPPLEMENT_ID => array(
self::VAR_TYPE => mediamosa_type::TYPE_SUPPLEMENT_ID,
self::VAR_DESCRIPTION => 'The supplement ID.',
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_YES,
),
self::SUPPLEMENT => array(
self::VAR_TYPE => mediamosa_type::TYPE_STRING,
self::VAR_DESCRIPTION => 'The supplement.',
self::VAR_RANGE_END => 64 * 1024, // 64k max length.
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_YES,
),
self::USER_ID => array(
self::VAR_TYPE => mediamosa_type::TYPE_USER_ID,
self::VAR_DESCRIPTION => 'The user ID.',
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_YES,
),
self::OAI_PREFIX => array(
self::VAR_TYPE => mediamosa_type::TYPE_STRING,
self::VAR_DESCRIPTION => 'The OAI prefix.',
self::VAR_RANGE_END => mediamosa_asset_supplement_db::OAI_PREFIX_LENGTH
),
self::OAI_NAMESPACEURI => array(
self::VAR_TYPE => mediamosa_type::TYPE_STRING,
self::VAR_DESCRIPTION => 'The OAI namespace URI.',
self::VAR_RANGE_END => mediamosa_asset_supplement_db::OAI_NAMESPACEURI_LENGTH
),
self::OAI_SCHEMALOCATION => array(
self::VAR_TYPE => mediamosa_type::TYPE_STRING,
self::VAR_DESCRIPTION => 'The OAI schema location.',
self::VAR_RANGE_END => mediamosa_asset_supplement_db::OAI_SCHEMALOCATION_LENGTH
),
)
);
// Enrich with required REST vars.
return self::get_var_setup_default($a_var_setup);
}
// ------------------------------------------------------------------ Override Process Rest Args.
protected function process_rest_args(array $a_var_setup) {
// Run parent so we can get the values.
parent::process_rest_args($a_var_setup);
// Either all are not set or all are set.
$a_combined = array(self::OAI_NAMESPACEURI, self::OAI_PREFIX, self::OAI_SCHEMALOCATION);
// If one of these are set, then make them all required.
$oai_set = FALSE;
foreach ($a_combined as $param) {
if ($this->isset_given_param($param)) {
$oai_set = TRUE;
break;
}
}
// One or more set? Then all required; make them all required.
if ($oai_set) {
foreach ($a_combined as $param) {
$a_var_setup[self::VARS][$param][self::VAR_IS_REQUIRED] = self::VAR_IS_REQUIRED_YES;
}
// When providing OAI stuff, then the supplement is a XML.
$a_var_setup[self::VARS][self::SUPPLEMENT][self::VAR_TYPE] = mediamosa_type::TYPE_XML_OAI;
}
else {
// No OAI set? Then Supplement is required.
$a_var_setup[self::VARS][self::SUPPLEMENT][self::VAR_IS_REQUIRED] = self::VAR_IS_REQUIRED_YES;
}
// Run parent again.
return parent::process_rest_args($a_var_setup);
}
// ------------------------------------------------------------------ Do Call.
public function do_call() {
$o_mediamosa = mediamosa::get();
$a_app_ids = $this->get_param_value_app();
$app_id = reset($a_app_ids);
// Test webservice.
mediamosa_webservice_app::webservice_must_be_active(mediamosa_webservice_app::HANDLE_MEDIA_MANAGEMENT, $a_app_ids);
// Get args.
$asset_id = $this->get_param_value(self::ASSET_ID);
$supplement_id = $this->get_param_value(self::SUPPLEMENT_ID);
$user_id = $this->get_param_value(self::USER_ID);
$oai_prefix = $this->get_param_value(self::OAI_PREFIX);
$oai_namespaceuri = $this->get_param_value(self::OAI_NAMESPACEURI);
$oai_schemalocation = $this->get_param_value(self::OAI_SCHEMALOCATION);
$supplement = $this->get_param_value(self::SUPPLEMENT);
// Must exists.
$asset = mediamosa_asset::must_exists($asset_id);
// Update the supplement.
mediamosa_asset_supplement::update($app_id, $user_id, $supplement_id, $oai_prefix, $oai_namespaceuri, $oai_schemalocation, $supplement);
// Set ok.
$o_mediamosa->set_result_okay();
}
}