Api
Version
mediamosa-30Class
mediamosa_rest_call_user_listCode
File: /sites/all/modules/mediamosa/modules/user/mediamosa_user.rest.class.inc
<?php
/**
* URI: /user
*
* Method: GET
*
* 1.x: user_management_list_user
*
*/
class mediamosa_rest_call_user_list extends mediamosa_rest_call {
// ------------------------------------------------------------------ Consts.
// Rest vars;
const GROUP_ID = 'group_id';
// ------------------------------------------------------------------ Get Var Setup.
public function get_var_setup() {
$a_var_setup = array();
$a_var_setup = array(
self::VARS => array(
self::GROUP_ID => array(
self::VAR_TYPE => mediamosa_sdk::TYPE_GROUP_ID,
self::VAR_DESCRIPTION => 'Name of the group where the user has to be a member.',
self::VAR_RANGE_END => mediamosa_user_group_db::GROUP_ID_LENGTH,
),
)
);
// Enrich with range.
$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() {
$o_mediamosa = mediamosa::get();
$a_app_ids = $this->get_param_value_app();
$app_id = reset($a_app_ids);
$group_id = $this->get_param_value(self::GROUP_ID);
$offset = $this->get_param_value_offset();
$limit = $this->get_param_value_limit();
// Fetch the items.
$result = mediamosa_user::get_all(TRUE, $app_id, $offset, $limit);
// Fill the response.
foreach ($result as $row) {
// TODO: maybe we shall optimize this by caching groups.
$groups = mediamosa_user::get_groups($app_id, $row['user_id'], TRUE);
if (!empty($group_id)) {
// We need only menbers of certain group.
if (!array_search($group_id, $groups)) {
continue;
}
}
if (!empty($groups)) {
$row['group_id'] = $groups;
}
$o_mediamosa->add_item($row);
}
// Set total count.
$o_mediamosa->item_count_total = $result->found_rows;
}
}