예제 #1
0
파일: Links.php 프로젝트: cicnavi/pirac
 /**
  * Prepare index links so we can get started.
  * 
  */
 protected function prepareLinks_index()
 {
     // Call API with our default request template to get default links.
     $res = Dispatcher::getQuick($this->settings->resolvedIndexLink);
     // We have to check if we are dealing with multi institution API.
     // If we have more than one institution in the array, it is multi institution API.
     if (count($res->body->_embedded->visokaUcilista) > 1) {
         $this->isMultiInstitutionApi = true;
     }
     // If it is multi institution API, we will take the whole array of institutions.
     if ($this->isMultiInstitutionApi) {
         $this->index = $res->body->_embedded->visokaUcilista;
     } else {
         // Not multi institution API, we can simply use the first institution.
         $this->index = clone $res->body->_embedded->visokaUcilista[0]->_links;
     }
 }
예제 #2
0
파일: Links_old.php 프로젝트: cicnavi/pirac
 /**
  * Populate links for nastavniplan.
  */
 protected function prepareLinks_nastavniplan()
 {
     // Get the nastavniplanzaakademskegodine and put it in new property.
     $res = Dispatcher::getQuick($this->index->nastavniplan->href);
     // This part is the same as nastavniplan in index links, so clone it.
     $this->nastavniplan = clone $this->index->nastavniplan;
     $this->nastavniplan->{'nastavniplanzaakademskegodine'} = clone $res->body->_links->{'nastavniplan_nastavniplanzaakademskegodine'};
     // Prepare links for nastavniplanzaakademskugodinu for specified academic year.
     $res = Dispatcher::getQuick($this->nastavniplan->nastavniplanzaakademskegodine->href);
     // Iterate over all years and break on first occurance.
     // Reverse the array so we start with the newest year (which is typically used).
     foreach (array_reverse($res->body->_embedded->akademskeGodine) as $year) {
         if ($year->akademskaGodina == $this->settings->academicYear) {
             // Save links for requested year.
             $this->nastavniplan->{'nastavniplanzaakademskugodinu'} = clone $year->_links->{'nastavniplan_nastavniplanzaakademskugodinu'};
             break;
         }
     }
     // Prepare links for nastavniplanzaakademskugodinu for each semestar.
     $res = Dispatcher::getQuick($this->nastavniplan->nastavniplanzaakademskugodinu->href);
     // Iterate over semestars.
     foreach ($res->body->_embedded->semestri as $semestar) {
         // First populate semestars
         $semestarNum = $semestar->semestar;
         $this->nastavniplan->nastavniplanzaakademskugodinu->{$semestarNum} = clone $semestar->_links->{'nastavniplan_nastavniplanzaakademskugodinu_predmeti'};
         // In each semestar there are subjects.
         $subjectsInSemestar = Dispatcher::getQuick($this->nastavniplan->nastavniplanzaakademskugodinu->{$semestarNum}->href);
         $this->nastavniplan->nastavniplanzaakademskugodinu->{$semestarNum}->{'predmeti'} = $subjectsInSemestar->body->_embedded->predmeti;
         // Prepare empty predmet object for this semester.
         $this->nastavniplan->nastavniplanzaakademskugodinu->{$semestarNum}->{'predmet'} = new \stdClass();
         foreach ($subjectsInSemestar->body->_embedded->predmeti as $subject) {
             $subjectCode = $subject->sifra;
             // Prepare subject object and populate links.
             $this->nastavniplan->nastavniplanzaakademskugodinu->{$semestarNum}->{'predmet'}->{$subjectCode} = new \stdClass();
             $this->nastavniplan->nastavniplanzaakademskugodinu->{$semestarNum}->{'predmet'}->{$subjectCode}->{'grupezanastavu'} = clone $subject->_links->{'nastavniplan_nastavniplanzaakademskugodinu_predmeti_grupezanastavu'};
             $this->nastavniplan->nastavniplanzaakademskugodinu->{$semestarNum}->{'predmet'}->{$subjectCode}->{'tjedniplannastave'} = clone $subject->_links->{'nastavniplan_nastavniplanzaakademskugodinu_predmeti_tjedniplannastave'};
             $this->nastavniplan->nastavniplanzaakademskugodinu->{$semestarNum}->{'predmet'}->{$subjectCode}->{'upisanistudenti'} = clone $subject->_links->{'nastavniplan_nastavniplanzaakademskugodinu_predmeti_upisanistudenti'};
             $this->nastavniplan->nastavniplanzaakademskugodinu->{$semestarNum}->{'predmet'}->{$subjectCode}->{'ispitnirokovi'} = clone $subject->_links->{'nastavniplan_nastavniplanzaakademskugodinu_predmeti_ispitnirokovi'};
             // Add self link.
             $this->nastavniplan->nastavniplanzaakademskugodinu->{$semestarNum}->{'predmet'}->{$subjectCode}->{'href'} = $subject->_links->self->href;
         }
     }
     unset($res);
     dd($this->nastavniplan);
 }
예제 #3
0
파일: Pirac.php 프로젝트: cicnavi/pirac
 /**
  * Get the resource from the provided url.
  * 
  * @param string $url URL for the resource to get.
  * @return \stdClass|array Returned resource object/array of objects from the API 
  */
 public function getResourceByUrl($url)
 {
     $response = Dispatcher::getQuick($url);
     // Check for _embedded property in response body or return whole body.
     //$resource = $this->checkEmbeddedProperty($response);
     return $response->body;
 }