public function readMembershipsSoap($membership) { try { $soap = $this->readMemberships(array('sourcedIdSet' => array('sourcedId' => $membership->getMembershipIds()))); $response = new Response($this); if ($response->getStatus() == 'error') { throw new TurnitinSDKException($response->getStatusCode(), $response->getDescription()); } else { $memberships = array(); if (isset($soap->membershipRecordSet->membershipRecord)) { if (!is_array($soap->membershipRecordSet->membershipRecord)) { $soap->membershipRecordSet->membershipRecord = array($soap->membershipRecordSet->membershipRecord); } foreach ($soap->membershipRecordSet->membershipRecord as $record) { $tiiMembership = new TiiMembership(); $tiiMembership->setMembershipId($record->sourcedGUID->sourcedId); $tiiMembership->setClassId($record->membership->collectionSourcedId); $tiiMembership->setUserId($record->membership->member->personSourcedId); $tiiMembership->setRole($record->membership->member->role->roleType); $memberships[] = $tiiMembership; } } $response->setMemberships($memberships); } return $response; } catch (SoapFault $e) { throw new TurnitinSDKException($e->faultcode, $e->faultstring, parent::getLogPath()); } }
/** * Get all the membership ids for a particular class * * @param int $tiicourseid the course id on Turnitin * @return array $tiiclassmembers all the membership Ids for the class if successful */ private function get_class_memberships($tiicourseid) { $turnitincomms = new turnitintooltwo_comms(); $turnitincall = $turnitincomms->initialise_api(); $membership = new TiiMembership(); $membership->setClassId($tiicourseid); try { $response = $turnitincall->findMemberships($membership); $findmembership = $response->getMembership(); $tiiclassmembers = $findmembership->getMembershipIds(); return $tiiclassmembers; } catch (Exception $e) { $turnitincomms->handle_exceptions($e, 'membercheckerror'); } }
/** * Set the number of user messages and any instructor rubrics from Turnitin */ public function set_user_values_from_tii() { $turnitincomms = new turnitintooltwo_comms(); $turnitincall = $turnitincomms->initialise_api(); $user = new TiiUser(); $user->setUserId($this->tii_user_id); try { $response = $turnitincall->readUser($user); $readuser = $response->getUser(); $this->usermessages = $readuser->getUserMessages(); $this->save_instructor_rubrics($readuser->getInstructorRubrics()); $tiiuser = array("id" => $readuser->getUserId(), "firstname" => $readuser->getFirstName(), "lastname" => $readuser->getLastName(), "email" => $readuser->getEmail()); return $tiiuser; } catch (Exception $e) { try { // We need to join the user to the account, we can only do that by adding the user to a class // make one and add them, then delete it. Awful workaround but should be rare. $class = new TiiClass(); $uuid = uniqid(microtime() . '-'); $class->setTitle($uuid); $response = $turnitincall->createClass($class); $newclass = $response->getClass(); $tiiclassid = $newclass->getClassId(); $membership = new TiiMembership(); $membership->setRole($this->role); $membership->setUserId($this->tii_user_id); $membership->setClassId($tiiclassid); $response = $turnitincall->createMembership($membership); $class->setClassId($tiiclassid); $response = $turnitincall->deleteClass($class); $response = $turnitincall->readUser($user); $readuser = $response->getUser(); $this->usermessages = $readuser->getUserMessages(); $this->save_instructor_rubrics($readuser->getInstructorRubrics()); } catch (Exception $e) { $turnitincomms->handle_exceptions($e, 'tiiusergeterror'); } } }