public function onBeforeDelete() { parent::onBeforeDelete(); $deleted = new TypeformSubmission_Deleted(); $deleted->TypeformID = $this->TypeformID; $deleted->ParentID = $this->ParentID; $deleted->write(); }
public function populateResponses($responses, $target, &$results, $force) { // assumes comments don't update. foreach ($responses as $response) { $results['total']++; $deleted = TypeformSubmission_Deleted::get()->filter(array('TypeformID' => $response['id'], 'ParentID' => $target->ID)); if ($deleted->count() > 0 && !$force) { continue; } $existing = TypeformSubmission::get()->filter(array('TypeformID' => $response['id'], 'ParentID' => $target->ID)); if ($existing->count() > 0) { continue; } else { $results['synced']++; // check to make sure it hasn't been deleted $submission = TypeformSubmission::create(); $submission->TypeformID = $response['id']; $submission->DateStarted = date("Y-m-d H:i:s", strtotime($response['metadata']['date_land'] . ' UTC')); $submission->DateSubmitted = date("Y-m-d H:i:s", strtotime($response['metadata']['date_submit'] . ' UTC')); $submission->ParentID = $target->ID; $submission->write(); if (isset($response['answers'])) { foreach ($response['answers'] as $field => $value) { $question = TypeformQuestion::get()->filter(array('Reference' => $field))->first(); if (!$question) { $question = TypeformQuestion::create(); $question->ParentID = $target->ID; $question->Reference = $reference; $question->write(); } $answer = TypeformSubmission_Answer::create(); $answer->Label = $question->Title; $answer->QuestionID = $question->ID; $answer->SubmissionID = $submission->ID; $answer->Value = $value; $answer->write(); } } $submission->extend('onAfterAnswersSynced'); } } }