Browse Source

Adaptando funcionalidades para a nova versão

master
Matheus456 6 years ago
parent
commit
cd0311609a
  1. 18
      classes/observer.php
  2. 40
      classes/util.php
  3. 6
      db/events.php

18
classes/observer.php

@ -2,7 +2,7 @@
require_once($CFG->dirroot.'/config.php'); require_once($CFG->dirroot.'/config.php');
include_once('../lib/httpful.phar'); include_once($CFG->dirroot.'/blocks/escola_modelo/lib/httpful.phar');
include_once('util.php'); include_once('util.php');
class block_escola_modelo_observer { class block_escola_modelo_observer {
@ -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);
} }

40
classes/util.php

@ -4,7 +4,7 @@
*/ */
require_once($CFG->dirroot.'/config.php'); require_once($CFG->dirroot.'/config.php');
include_once('../lib/httpful.phar'); include_once($CFG->dirroot.'/blocks/escola_modelo/lib/httpful.phar');
/** /**
* Verifica se um curso é público, conforme critérios da EVL. * Verifica se um curso é público, conforme critérios da EVL.
@ -56,7 +56,6 @@ function categoriaPublica($category) {
*/ */
function atualizaCursoEVL($curso, $visivel = null) { function atualizaCursoEVL($curso, $visivel = null) {
global $DB, $CFG, $USER; global $DB, $CFG, $USER;
mtrace("curso " . $curso->id); mtrace("curso " . $curso->id);
// Detecta status, caso ele não tenha sido especificado // Detecta status, caso ele não tenha sido especificado
@ -87,13 +86,11 @@ function atualizaCursoEVL($curso, $visivel = null) {
"certificador" => $CFG->emSigla, "certificador" => $CFG->emSigla,
"carga_horaria" => $ch "carga_horaria" => $ch
); );
// Monta o JSON que será enviado ao Web Service // Monta o JSON que será enviado ao Web Service
$obj->school = $CFG->emSigla; $obj->school = $CFG->emSigla;
$obj->course = $camposCurso; $obj->course = $camposCurso;
$obj->key = $CFG->emApplicationToken; $obj->key = $CFG->emApplicationToken; // Precisa passar a chave do usuário
$json = json_encode($obj); $json = json_encode($obj);
$response = \Httpful\Request::post($uri) $response = \Httpful\Request::post($uri)
->sendsJson() ->sendsJson()
->body($json) ->body($json)
@ -112,14 +109,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);
} }
@ -218,7 +218,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'));
@ -226,31 +225,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);
@ -264,7 +263,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 (?,?)
@ -293,8 +291,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);

6
db/events.php

@ -21,9 +21,9 @@ $observers = array(
), ),
// Eventos de certificados // Eventos de certificados
array( array(
'eventname' => 'mod_certificate\event\certificates_created', 'eventname' => 'mod_certificate\event\certificate_created',
'callback' => 'block_escola_modelo_observer::certificates_created' 'callback' => 'block_escola_modelo_observer::certificate_created'
) ),
// ), // ),
// // Eventos de matrícula a cursos // // Eventos de matrícula a cursos
// array( // array(

Loading…
Cancel
Save