vpx_jobscheduler_create_new_job

Versions
mediamosa-174
vpx_jobscheduler_create_new_job($a_args)

Aanmaken van een nieuwe job

▾ 12 functions call vpx_jobscheduler_create_new_job()

vpx_jobscheduler_create_new_still_job in vpx_jobscheduler/vpx_jobscheduler.module
starten van een still job
vpx_jobscheduler_create_new_still_job in vpx_jobscheduler/vpx_jobscheduler.module
starten van een still job
vpx_jobscheduler_create_new_still_job in vpx_jobscheduler/vpx_jobscheduler.module
starten van een still job
vpx_jobscheduler_create_new_still_job_2 in vpx_jobscheduler/vpx_jobscheduler.module
Replaced version of above asset/$asset_id/still/create
vpx_jobscheduler_create_new_still_job_2 in vpx_jobscheduler/vpx_jobscheduler.module
Replaced version of above asset/$asset_id/still/create
vpx_jobscheduler_create_new_still_job_2 in vpx_jobscheduler/vpx_jobscheduler.module
Replaced version of above asset/$asset_id/still/create
vpx_jobscheduler_create_new_transcode_job in vpx_jobscheduler/vpx_jobscheduler.module
starten van een transcode job
vpx_jobscheduler_create_new_transcode_job in vpx_jobscheduler/vpx_jobscheduler.module
starten van een transcode job
vpx_jobscheduler_create_new_transcode_job in vpx_jobscheduler/vpx_jobscheduler.module
starten van een transcode job
vpx_upload_handle_file in vpx_upload/vpx_upload.module
vpx_upload_handle_file in vpx_upload/vpx_upload.module
vpx_upload_handle_file in vpx_upload/vpx_upload.module

Code

vpx_jobscheduler/vpx_jobscheduler.module, line 215

<?php
function vpx_jobscheduler_create_new_job($a_args) {
  // Haal de parameters op ..
  //print_r($a_args);
  $parameters = array(
    'user_id' => array(
      'value' => vpx_get_parameter_2($a_args['get'], 'user_id'),
      'type' => TYPE_USER_ID,
      'required' => TRUE,
    ),
    'app_id' => array(
      'value' => vpx_get_parameter_2($a_args['get'], 'app_id'),
      'type' => 'int',
      'required' => TRUE,
    ),
    'group_id' => array(
      'value' => vpx_get_parameter_2($a_args['get'], 'group_id', FALSE),
      'type' => TYPE_GROUP_ID,
    ),
    'mediafile_id' => array(
      'value' => vpx_get_parameter_2($a_args['get'], 'mediafile_id'),
      'type' => 'alphanum',
      'required' => TRUE,
    ),
    'job_type' => array(
      'value' => vpx_get_parameter_2($a_args['post'], 'job_type'),
      'type' => 'job_type',
      'required' => TRUE,
      'custom_error' => ERRORCODE_UNKNOWN_JOB_TYPE
    ),
    'testtag' => array(
      'value' => vpx_get_parameter_2($a_args['get'], 'testtag', 'FALSE'),
      'type' => 'alphanum'
    ),
    // Stills
    'create_still' => array(
      'value' => vpx_get_parameter_2($a_args['post'], 'create_still', 'FALSE'),
      'type' => VPX_TYPE_BOOL
    ),
    'still_type' => array(
      'value' => vpx_get_parameter_2($a_args['post'], 'still_type', NULL),
      'type' => VPX_TYPE_ALPHA,
    ),
    'still_per_mediafile' => array(
      'value' => vpx_get_parameter_2($a_args['post'], 'still_per_mediafile', NULL),
      'type' => VPX_TYPE_INT,
    ),
    'still_every_second' => array(
      'value' => vpx_get_parameter_2($a_args['post'], 'still_every_second', NULL),
      'type' => VPX_TYPE_INT,
    ),
    'start_frame' => array(
      'value' => vpx_get_parameter_2($a_args['post'], 'start_frame', NULL),
      'type' => VPX_TYPE_INT,
    ),
    'end_frame' => array(
      'value' => vpx_get_parameter_2($a_args['post'], 'end_frame', NULL),
      'type' => VPX_TYPE_INT,
    ),
    'size' => array(
      'value' => vpx_get_parameter_2($a_args['post'], 'size', NULL),
      'type' => VPX_TYPE_IGNORE,
    ),
    'h_padding' => array(
      'value' => vpx_get_parameter_2($a_args['post'], 'h_padding', NULL),
      'type' => VPX_TYPE_INT,
    ),
    'v_padding' => array(
      'value' => vpx_get_parameter_2($a_args['post'], 'v_padding', NULL),
      'type' => VPX_TYPE_INT,
    ),
    'tag' => array(
      'value' => vpx_get_parameter_2($a_args['post'], 'tag', NULL),
      'type' => VPX_TYPE_STRING,
    ),
    // Still parameters for backward compatibility
    'frametime' => array(
      'value' => vpx_get_parameter_2($a_args['post'], 'frametime', NULL),
      'type' => VPX_TYPE_INT,
    ),
    'width' => array(
      'value' => vpx_get_parameter_2($a_args['post'], 'width', NULL),
      'type' => VPX_TYPE_INT,
    ),
    'height' => array(
      'value' => vpx_get_parameter_2($a_args['post'], 'height', NULL),
      'type' => VPX_TYPE_INT,
    ),
    // End stills
    'completed_transcoding_url' => array(
      'value' => vpx_get_parameter_2($a_args['post'], 'completed_transcoding_url'),
      'type' => VPX_TYPE_URL,
    ),
  );

  // valideer alle parameters op aanwezigheid en type
  $result = vpx_validate($parameters);
  if (vpx_check_result_for_error($result)) {
    return new rest_response($result);
  }

  // controleer of de ega een job mag starten
  if (!vpx_shared_webservice_is_active('jobs', $parameters['app_id']['value'])) {
    return new rest_response(vpx_return_error(ERRORCODE_WEBSERVICE_DISABLED));
  }
  /*
   * FIX ME
   * Authorisatie
   */

  // controleer of de mediafile bestaat
  if (!vpx_count_rows("mediafile", array("mediafile_id", $parameters['mediafile_id']['value']))) {
    return new rest_response(vpx_return_error(ERRORCODE_JOB_MEDIAFILE_NOT_FOUND, array("@mediafile_id" => $parameters['mediafile_id']['value'])));
  }
// controleer of de user niet boven quota zit indien het een transcode of upload is
  if (($parameters['job_type']['value'] === JOBTYPE_UPLOAD) || ($parameters['job_type']['value'] === JOBTYPE_TRANSCODE)) {
    $result = _user_management_check_user_quota($parameters['app_id']['value'], $parameters['user_id']['value'], $parameters['group_id']['value']);
    if (vpx_check_result_for_error($result)) {
      return new rest_response(vpx_return_error(ERRORCODE_QUOTA_REACHED));
    }
  }

  // controleer of het een upload job betreft en er een URI is ingevuld
  // de mediafile_id
  db_set_active("data");
  $has_uri = db_result(db_query("
      SELECT uri IS NULL FROM mediafile WHERE mediafile_id = '%s'",
      $parameters['mediafile_id']['value']
  ));
  db_set_active();

  if ($has_uri != 1) {
    return new rest_response(vpx_return_error(ERRORCODE_CHANGE_URI_AND_FILE, array("@mediafile_id" => $parameters['mediafile_id']['value'])));
  }

  if ($parameters['job_type']['value'] === JOBTYPE_TRANSCODE) {
    $reason = media_management_is_transcodable($parameters['mediafile_id']['value']);

    if (!is_null($reason)) {
      return new rest_response(vpx_return_error(ERRORCODE_CANT_TRANSCODE_MEDIAFILE, array("@mediafile_id" => $parameters['mediafile_id']['value'], "@reason" => $reason)));
    }
  }

  return _vpx_jobs_create_new_job($a_args, $parameters);
}
?>