Matheus Garcia 6 years ago
parent
commit
d287020d5d
  1. 16
      classes/observer.php
  2. 33
      classes/util.php

16
classes/observer.php

@ -34,10 +34,9 @@ class block_escola_modelo_observer {
public static function course_updated(\core\event\base $event) { public static function course_updated(\core\event\base $event) {
global $DB, $CFG; global $DB, $CFG;
$curso = $DB->get_record($event->objecttable,array('id'=>$event->objectid)); $curso = $DB->get_record($event->objecttable,array('id'=>$event->objectid));
atualizaCursoEVL($curso); atualizaCursoEVL($curso);
} }
/** /**
* Trata evento de remoção de um curso. * Trata evento de remoção de um curso.
* TODO: tratar situações em que isso pode ou não ocorrer, bem como a forma adequada de tratar o evento. * TODO: tratar situações em que isso pode ou não ocorrer, bem como a forma adequada de tratar o evento.
@ -45,11 +44,17 @@ class block_escola_modelo_observer {
public static function course_deleted(\core\event\base $event) { public static function course_deleted(\core\event\base $event) {
global $DB, $CFG; global $DB, $CFG;
$curso = $DB->get_record($event->objecttable,array('id'=>$event->objectid)); $curso = $DB->get_record($event->objecttable,array('id'=>$event->objectid));
// Por enquanto, atualizamos o curso na EVL, porém o mesmo fica invisível // Por enquanto, atualizamos o curso na EVL, porém o mesmo fica invisível
atualizaCursoEVL($curso, false); atualizaCursoEVL($curso, false);
} }
// EVENTOS RELACIONADOS A CERTIFICADOS
public static function certificate_created(\core\event\base $event) {
atualizaCertificadoEVL($event->other);
}
// //
// EVENTOS RELACIONADOS A CATEGORIAS // EVENTOS RELACIONADOS A CATEGORIAS
// //
@ -66,9 +71,8 @@ class block_escola_modelo_observer {
public static function course_category_updated(\core\event\base $event) { public static function course_category_updated(\core\event\base $event) {
global $DB, $CFG; global $DB, $CFG;
$categoria = $DB->get_record($event->objecttable,array('id'=>$event->objectid)); $categoria = $DB->get_record($event->objecttable,array('id'=>$event->objectid));
A forma mais segura de fazê-lo é modificar timemodified de todos os cursos,
// A forma mais segura de fazê-lo é modificar timemodified de todos os cursos, de modo que na próxima sincronização eles tenham seu status modificado
// de modo que na próxima sincronização eles tenham seu status modificado
atualizaCategoriaEVL($categoria); atualizaCategoriaEVL($categoria);
} }

33
classes/util.php

@ -144,14 +144,17 @@ function atualizaCursoEVL($curso, $visivel = null) {
*/ */
function registraSincronizacaoCurso($curso) { function registraSincronizacaoCurso($curso) {
global $DB; global $DB;
// VALUES (' . $curso->id . ',' . date('H:i:s') . ')
// ON CONFLICT (' . $curso->id . ') DO UPDATE
// SET time_sync = ?';
$qry = ' $qry = '
INSERT INTO {ilb_sync_course} (course_id, time_sync) INSERT INTO {ilb_sync_course} (course_id, time_sync)
VALUES (?,?) VALUES (?,?)
ON CONFLICT (course_id) DO UPDATE ON CONFLICT (course_id) DO UPDATE
SET time_sync = ?'; SET time_sync = ?';
$params = array($curso->id, $curso->timemodified, $curso->timemodified); $params = array($curso->id, $curso->timemodified, $curso->timemodified);
return $DB->execute($qry, $params); return $DB->execute($qry, $params);
} }
@ -250,7 +253,6 @@ function atualizaCategoriaEVL($categoria) {
function atualizaCertificadoEVL($certificado) { function atualizaCertificadoEVL($certificado) {
global $DB, $CFG, $USER; global $DB, $CFG, $USER;
mtrace("certificado " . $certificado->code); mtrace("certificado " . $certificado->code);
$school = $DB->get_record('course',array('id'=>'1')); $school = $DB->get_record('course',array('id'=>'1'));
@ -258,31 +260,31 @@ function atualizaCertificadoEVL($certificado) {
$uri = $CFG->emURLWS . '/api/v1/certificados/adicionar/'; $uri = $CFG->emURLWS . '/api/v1/certificados/adicionar/';
$obj = new StdClass(); $obj = new StdClass();
$certArray = array(); $certArray = array();
// Gravação de certificado para envio ao Web Service da EVL // Gravação de certificado para envio ao Web Service da EVL
$certItem = array( $certItem = array(
'course' => $certificado->courseid, 'course' => $certificado->course,
'student' => $certificado->username, 'student' => $certificado->user,
'date' => $certificado->timecreated, 'date' => $certificado->timecreated,
'grade' => $certificado->finalgrade, 'grade' => $certificado->gradefmt,
'code' => $certificado->code, 'code' => $certificado->id,
); );
array_push($certArray, $certItem); array_push($certArray, $certItem);
$mainArray = array( $mainArray = array(
'key' => $CFG->emApplicationToken,
'school' => $CFG->emSigla, 'school' => $CFG->emSigla,
'certificates' => $certArray, 'certificates' => $certArray,
'key' =>$ $CFG->emApplicationToken
); );
$json = json_encode($mainArray); $json = json_encode($mainArray);
echo "AQUI O CERT ARRAY -> {$json}\n";
$response = \Httpful\Request::post($uri) $response = \Httpful\Request::post($uri)
->sendsJson() ->sendsJson()
->body($json) ->body($json)
->send(); ->send();
// Se o registro foi criado no servidor, registra em tabela de controle // Se o registro foi criado no servidor, registra em tabela de controle
if(!$response->hasErrors()) { if(!$response->hasErrors()) {
registraSincronizacaoCertificado($certificado); registraSincronizacaoCertificado($certificado);
@ -296,7 +298,6 @@ function atualizaCertificadoEVL($certificado) {
*/ */
function registraSincronizacaoCertificado($certificado) { function registraSincronizacaoCertificado($certificado) {
global $DB; global $DB;
$qry = ' $qry = '
INSERT INTO {ilb_sync_certificate} (certificate_id, time_sync) INSERT INTO {ilb_sync_certificate} (certificate_id, time_sync)
VALUES (?,?) VALUES (?,?)
@ -325,8 +326,8 @@ function atualizaDadosEscola($dadosEscola) {
'name' => $dadosEscola->nome_escola, 'name' => $dadosEscola->nome_escola,
'url' => $dadosEscola->url_escola, 'url' => $dadosEscola->url_escola,
'logo' => $dadosEscola->url_logo_escola, 'logo' => $dadosEscola->url_logo_escola,
'initials' => $dadosEscola->sigla_escola, 'initials' => $dadosEscola->sigla_escola,
'key' => $CFG->emApplicationToken 'key' => $CFG->emApplicationToken
); );
$json = json_encode($schoolArray); $json = json_encode($schoolArray);

Loading…
Cancel
Save