Api

Version

mediamosa-30

Class

mediamosa_rest_call_collection_create

Code

File: /sites/all/modules/mediamosa/modules/collection/mediamosa_collection.rest.class.inc
<?php

/**
 * URI: /collection/create
 * Method: POST
 *
 * 1.x: media_management_create_collection
 */
class mediamosa_rest_call_collection_create extends mediamosa_rest_call {
  
// ------------------------------------------------------------------ Consts.
  // Rest vars;
  
const USER_ID 'user_id';
  const 
GROUP_ID 'group_id';
  const 
TITLE 'title';
  const 
DESCRIPTION 'description';
  const 
PRIVATE_ 'private';
  const 
PUBLIC_ 'public';
  const 
CATEGORY 'category';
  const 
ISPRIVATE 'isprivate';
  const 
PUBLIC_ASSIGN 'public_assign';
  const 
IS_UNAPPROPRIATE 'is_unappropriate';

  
// ------------------------------------------------------------ Get Var Setup.
  
public function get_var_setup() {
    
$var_setup = array();

    
$var_setup = array(
      
self::VARS => array(
        
self::USER_ID => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_USER_ID,
          
self::VAR_DESCRIPTION => 'The user ID, will become the owner of the collection.',
          
self::VAR_IS_REQUIRED => self::VAR_IS_REQUIRED_YES,
          
self::VAR_RANGE_END => mediamosa_user_db::NAME_LENGTH,
        ),
        
self::GROUP_ID => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_GROUP_ID,
          
self::VAR_DESCRIPTION => 'The group ID, will be used for the group_id of the collection.',
          
self::VAR_RANGE_END => mediamosa_user_group_db::GROUP_ID_LENGTH,
        ),
        
self::TITLE => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_STRING,
          
self::VAR_DESCRIPTION => 'The title of the new collection.',
          
self::VAR_RANGE_END => mediamosa_collection_db::TITLE_LENGTH,
        ),
        
self::DESCRIPTION => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_STRING,
          
self::VAR_DESCRIPTION => 'Description of the new collection.',
        ),
        
self::PRIVATE_ => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_BOOL,
          
self::VAR_DESCRIPTION => 'Used to identify private collections, use [GET] /collection?private=true to get these collections.',
          
self::VAR_DEFAULT_VALUE => 'false',
        ),
        
self::PUBLIC_ => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_BOOL,
          
self::VAR_DESCRIPTION => 'Used to identify public collections, use [GET] /collection?public=true to get these collections.',
          
self::VAR_DEFAULT_VALUE => 'true',
        ),
        
self::CATEGORY => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_BOOL,
          
self::VAR_DESCRIPTION => 'Used to identify main category collections, use [GET] /collection?category=true to get these collections.',
          
self::VAR_DEFAULT_VALUE => 'false',
        ),
        
self::ISPRIVATE => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_BOOL,
          
self::VAR_DESCRIPTION => t('If isprivate = true, then the collction is not displayed in public lists, such as top 10, last uploaded, etc.'),
          
self::VAR_DEFAULT_VALUE => 'false',
        ),
        
self::PUBLIC_ASSIGN => array(
          
self::VAR_TYPE => mediamosa_sdk::TYPE_BOOL,
          
self::VAR_DESCRIPTION => "A 'true' value indicates that all users have access to the collection entitled to assets.",
          
self::VAR_DEFAULT_VALUE => 'false',
        ),
      ),
    );

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

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

    
$app_ids $this->get_param_value_app();
    
$app_id reset($app_ids);
    
$is_app_admin $this->get_param_value(self::IS_APP_ADMIN);

    
$this->unset_param(self::IS_UNAPPROPRIATE);

    
// Test webservice.
    
mediamosa_webservice_app::webservice_must_be_active(mediamosa_webservice_app::HANDLE_MEDIA_MANAGEMENT$app_ids);

    
// Get the user ID (required).
    
$user_id $this->get_param_value(self::USER_ID);

    
// Optionals.
    
$title $this->get_param_value(self::TITLE);
    
$description $this->get_param_value(self::DESCRIPTION);
    
$group_id $this->get_param_value(self::GROUP_ID);
    
$private $this->get_param_value(self::PRIVATE_);
    
$public $this->get_param_value(self::PUBLIC_);
    
$category $this->get_param_value(self::CATEGORY);
    
$isprivate $this->get_param_value(self::ISPRIVATE);
    
$public_assign $this->get_param_value(self::PUBLIC_ASSIGN);

    
// Now create the collection.
    
$coll_id mediamosa_collection::create($app_id$user_id$title$description$group_id$private$public$category$isprivate$public_assign);

    
// Unique ID to response.
    
$o_mediamosa->add_item(array(mediamosa_collection_db::ID => $coll_id));
  }
}