Api
Version
mediamosa-30Class
mediamosa_rest_call_acl_get_appsCode
File: /sites/all/modules/mediamosa/modules/acl/mediamosa_acl.rest.class.inc
<?php
/**
* URI:
* acl/app
* acl/get_foreign_apps (depricated)
*
* Method: GET
*/
class mediamosa_rest_call_acl_get_apps extends mediamosa_rest_call {
// ------------------------------------------------------------------- Consts.
// Rest vars;
const IS_OAI = 'is_oai';
const NAME = 'name';
// ------------------------------------------------------- Functions (public).
public function get_var_setup() {
$var_setup = array();
$var_setup[self::VARS][self::IS_OAI] = array(
self::VAR_TYPE => mediamosa_sdk::TYPE_BOOL,
self::VAR_DESCRIPTION => 'The OAI is allowed to see all applications. However, the call must be made internally to work.',
self::VAR_IS_INTERNAL_ONLY => self::VAR_IS_INTERNAL_ONLY_YES,
self::VAR_DEFAULT_VALUE => 'FALSE',
);
// Enrich with required REST vars.
return self::get_var_setup_default($var_setup);
}
public function do_call() {
$mediamosa = mediamosa::get();
// Get the app id(s).
$app_ids = $this->get_param_value_app();
$is_oai = $this->get_param_value(self::IS_OAI);
// First is always the main app.
$app_id = reset($app_ids);
if ($is_oai) {
$result = mediamosa_db::db_query(
"SELECT #id AS app_id, #name, #play_proxy_url, #view_asset_url, #download_url
FROM {#mediamosa_app}
ORDER BY #name ASC", array(
'#id' => mediamosa_app_db::APP_ID,
'#name' => mediamosa_app_db::APP_NAME,
'#play_proxy_url' => mediamosa_app_db::PLAY_PROXY_URL,
'#view_asset_url' => mediamosa_app_db::VIEW_ASSET_URL,
'#download_url' => mediamosa_app_db::DOWNLOAD_URL,
'#mediamosa_app' => mediamosa_app_db::TABLE_NAME,
));
foreach ($result as $app) {
$mediamosa->add_item(array(
mediamosa_app_db::APP_ID => $app[mediamosa_app_db::APP_ID],
self::NAME => $app[mediamosa_app_db::APP_NAME],
mediamosa_app_db::PLAY_PROXY_URL => $app[mediamosa_app_db::PLAY_PROXY_URL],
mediamosa_app_db::VIEW_ASSET_URL => $app[mediamosa_app_db::VIEW_ASSET_URL],
mediamosa_app_db::DOWNLOAD_URL => $app[mediamosa_app_db::DOWNLOAD_URL],
));
}
}
else {
// @todo: Fix serialize speed when there are many apps.
// Restricted listing.
$result = mediamosa_db::db_query(
"SELECT #id AS app_id, #name, #allow_masterslave_apps
FROM {#mediamosa_app}
ORDER BY #name ASC", array(
'#id' => mediamosa_app_db::APP_ID,
'#name' => mediamosa_app_db::APP_NAME,
'#allow_masterslave_apps' => mediamosa_app_db::ALLOW_MASTERSLAVE_APPS,
'#mediamosa_app' => mediamosa_app_db::TABLE_NAME,
));
foreach ($result as $app) {
$allowed_apps = unserialize($app[mediamosa_app_db::ALLOW_MASTERSLAVE_APPS]);
$allowed_apps = is_array($allowed_apps) ? $allowed_apps : array();
// Get
$app_ids = array_keys($allowed_apps);
// Am I allowed?
if (in_array($app_id, $app_ids)) {
$mediamosa->add_item(array(
mediamosa_app_db::APP_ID => $app[mediamosa_app_db::APP_ID],
self::NAME => $app[mediamosa_app_db::APP_NAME],
));
}
}
}
}
}