You are here

function webform_service_parse_submission in Webform Service 6.3

Same name and namespace in other branches
  1. 7.4 webform_service.module \webform_service_parse_submission()

Provided a submission in external format, this parses it to what webform expects.

Parameters

type $webform:

type $submission:

3 calls to webform_service_parse_submission()
webform_service_submission_create in resources/submission_resource.inc
Creates a new submission within a webform.
webform_service_submission_delete in resources/submission_resource.inc
Delete a submission within a webform.
webform_service_submission_update in resources/submission_resource.inc
Updates a webform submission based on submitted values.

File

./webform_service.module, line 183
Webform service module.

Code

function webform_service_parse_submission($webform, $submission) {

  // Make sure the submission and webforms are objects.
  $webform = (object) $webform;
  $submission = (object) $submission;

  // Normalize the submission data.
  $data = array();
  foreach ($submission->data as $cid => $values) {
    $data[$cid] = $values;
  }
  if (!empty($submission->user_uuid)) {
    $user = user_get_by_uuid($submission->user_uuid);
  }

  // Setup the submission object.
  $submission_obj = (object) array(
    'nid' => !empty($submission->nid) ? $submission->nid : $webform->nid,
    'uid' => !empty($user) ? $user->uid : NULL,
    'submitted' => REQUEST_TIME,
    'remote_addr' => !empty($submission->remote_addr) ? $submission->remote_addr : ip_address(),
    'is_draft' => 0,
    'data' => $data,
  );

  // Add the submission ID if it is provided.
  if (!empty($submission->sid)) {
    $submission_obj->sid = $submission->sid;
  }
  return $submission_obj;
}