/** * Edit the submission in Turnitin so a tutor can see the identity of the student * * @param string $reason * @return boolean */ public function unanonymise_submission($reason) { // Get user and part details. $turnitintooltwoassignment = new turnitintooltwo_assignment($this->turnitintooltwoid); $partdetails = $turnitintooltwoassignment->get_part_details($this->submission_part); $user = new turnitintooltwo_user($this->userid); // Initialise Comms Object. $turnitincomms = new turnitintooltwo_comms(); $turnitincall = $turnitincomms->initialise_api(); $submission = new TiiSubmission(); $submission->setSubmissionId($this->submission_objectid); $submission->setAssignmentId($partdetails->tiiassignid); if (strlen($reason) < 5) { $reason = "No specified reason: " . $reason; } $submission->setAnonymousRevealReason($reason); $submission->setAnonymousRevealUser($user->tii_user_id); $submission->setAnonymousRevealDateTime(date("c")); try { $turnitincall->updateSubmission($submission); return true; } catch (Exception $e) { $turnitincomms->handle_exceptions($e, "unanonymiseerror", false); return false; } }
/** * Get ids of submissions from Turnitin * * @param object $part the part to get submissions for */ public function get_submission_ids_from_tii($part) { // Initialise Comms Object. $turnitincomms = new turnitintooltwo_comms(); $turnitincall = $turnitincomms->initialise_api(); try { $submission = new TiiSubmission(); $submission->setAssignmentId($part->tiiassignid); // Only update submissions that have been modified since last update. if (!empty($_SESSION["TiiSubmissionsRefreshed"][$part->id])) { $submission->setDateFrom(gmdate("Y-m-d\\TH:i:s\\Z", $_SESSION["TiiSubmissionsRefreshed"][$part->id])); } $response = $turnitincall->findSubmissions($submission); $findsubmission = $response->getSubmission(); $_SESSION["TiiSubmissions"][$part->id] = $findsubmission->getSubmissionIds(); } catch (Exception $e) { $turnitincomms->handle_exceptions($e, 'tiisubmissionsgeterror', false); } }
/** * Find Submission Ids on a Turnitin Assignment. * * Takes a {@link TiiSubmission.html TiiSubmission} object containing the required parameters * and returns a {@link Response.html Response} object containing the data from the response. * * findSubmissions accepts: * <ul> * <li><b>Assignment Id</b><br />{@link TiiSubmission.html#setAssignmentId TiiSubmission->setAssignmentId( <i>integer</i> AssignmentId )}</li> * <li><b>Date From</b> (Optional)<br />{@link TiiSubmission.html#setDateFrom TiiSubmission->setDateFrom( <i>string</i> DateFrom )}</li> * </ul> * findSubmissions returns a {@link Response.html Response} object which contains a {@link TiiSubmission.html TiiSubmission} object: * <ul> * <li>{@link Response.html#setSubmission Response->getSubmission()} returns a {@link TiiSubmission.html TiiSubmission} object</li> * <ul> * <li><b>Submission Ids</b> (array)<br />{@link TiiSubmission.html#getSubmissionIds TiiSubmission->getSubmissionIds()}</li> * </ul> * </ul> * * <h3>Example Code:</h3> * <pre class="prettyprint lang-perl" style="padding: 12px;"> * $api = new APITurnitin( 1234, 'https://sandbox.turnitin.com', 'mysecret', 16 ); * $submission = new TiiSubmission(); * $submission->setAssignmentId( 1234 ); * $submission->setDateFrom( '2012-09-12T09:00:00Z' ); * * $response = $api->findSubmissions( $submission ); * $findsubmission = $response->getSubmission(); * $findsubmissionids = $findsubmission->getSubmissionIds(); * </pre> * * @param TiiSubmission $submission * @return Response */ public function findSubmissions($submission) { $submissionSoap = $this->setOptions(new SubmissionSoap($this->resultwsdl, $this->getServiceOptions('result'))); if (!is_null($submission->getDateFrom())) { return $submissionSoap->findRecentSubmissions($submission); } else { return $submissionSoap->findSubmissions($submission); } }
/** * * @param TiiSubmission $submission */ public function replaceSubmission($submission) { $params_merge = $this->getResubmissionFormHash($submission); if (is_null($submission->getSubmissionDataPath()) && is_null($submission->getSubmissionDataUrl())) { $params_merge['custom_submission_data'] = $submission->getSubmissionDataText(); } else { if (is_null($submission->getSubmissionDataUrl())) { // CURL uploading with @ has been deprecated in PHP 5.5 if (class_exists('CURLFile')) { $finfo = new finfo(FILEINFO_MIME); $mimetype = $finfo->file($submission->getSubmissionDataPath()); $params_merge['custom_submission_data'] = new CurlFile($submission->getSubmissionDataPath(), $mimetype); } else { $params_merge['custom_submission_data'] = '@' . $submission->getSubmissionDataPath(); } } } $transport = $this->transportData($params_merge); $response = new Response($this); if ($response->getStatusCode() == 'failure') { throw new TurnitinSDKException($response->getStatusCode(), $response->getDescription()); } else { $dom = $response->getDomObject(); $tiiSubmission = new TiiSubmission(); $tiiSubmission->setSubmissionId($dom->getElementsByTagName('lis_result_sourcedid')->item(0)->nodeValue); $tiiSubmission->setTextExtract(@$dom->getElementsByTagName('submission_data_extract')->item(0)->nodeValue); $response->setSubmission($tiiSubmission); } return $response; }
/** * Delete a submission from Turnitin */ private function delete_tii_submission($cm, $submissionid, $user) { global $CFG; // Initialise Comms Object. $turnitincomms = new turnitin_comms(); $turnitincall = $turnitincomms->initialise_api(); $submission = new TiiSubmission(); $submission->setSubmissionId($submissionid); try { $response = $turnitincall->deleteSubmission($submission); } catch (Exception $e) { $turnitincomms->handle_exceptions($e, 'turnitindeletionerror', false); mtrace('-------------------------'); mtrace(get_string('turnitindeletionerror', 'plagiarism_turnitin') . ': ' . $e->getMessage()); mtrace('User: '******' - ' . $user->firstname . ' ' . $user->lastname . ' (' . $user->email . ')'); mtrace('Course Module: ' . $cm->id . ''); mtrace('-------------------------'); } }
/** * Delete a submission from Turnitin */ private function delete_tii_submission($submissionid) { // Initialise Comms Object. $turnitincomms = new turnitin_comms(); $turnitincall = $turnitincomms->initialise_api(); $submission = new TiiSubmission(); $submission->setSubmissionId($submissionid); try { $response = $turnitincall->deleteSubmission($submission); } catch (Exception $e) { $turnitincomms->handle_exceptions($e, 'turnitindeletionerror'); } }
public function createSubmission($submission) { try { $request = array(); $request['resultRecord']['sourcedGUID']['sourcedId'] = ''; $request['resultRecord']['result']['personSourcedId'] = $submission->getAuthorUserId(); $request['resultRecord']['result']['lineItemSourcedId'] = $submission->getAssignmentId(); $request['resultRecord']['result']['extension']['extensionNameVocabulary'] = self::$extensionname_vocab; $request['resultRecord']['result']['extension']['extensionValueVocabulary'] = self::$extensionvalue_vocab; $request['resultRecord']['result']['extension']['extensionField'][0]['fieldName'] = 'Submitter'; $request['resultRecord']['result']['extension']['extensionField'][0]['fieldType'] = 'Integer'; $request['resultRecord']['result']['extension']['extensionField'][0]['fieldValue'] = $submission->getSubmitterUserId(); $soap = $this->createByProxyResult($request); $response = new Response($this); if ($response->getStatus() == 'error') { throw new TurnitinSDKException($response->getStatusCode(), $response->getDescription()); } else { $tiiSubmission = new TiiSubmission(); $tiiSubmission->setSubmissionId($soap->sourcedId); $response->setSubmission($tiiSubmission); } return $response; } catch (SoapFault $e) { throw new TurnitinSDKException($e->faultcode, $e->faultstring, parent::getLogPath()); } }