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');
include_once('../lib/httpful.phar');
include_once($CFG->dirroot.'/blocks/escola_modelo/lib/httpful.phar');
include_once('util.php');
class block_escola_modelo_observer {
@ -34,10 +34,9 @@ class block_escola_modelo_observer {
public static function course_updated(\core\event\base $event) {
global $DB, $CFG;
$curso = $DB->get_record($event->objecttable,array('id'=>$event->objectid));
atualizaCursoEVL($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.
@ -45,11 +44,17 @@ class block_escola_modelo_observer {
public static function course_deleted(\core\event\base $event) {
global $DB, $CFG;
$curso = $DB->get_record($event->objecttable,array('id'=>$event->objectid));
// Por enquanto, atualizamos o curso na EVL, porém o mesmo fica invisível
atualizaCursoEVL($curso, false);
}
// EVENTOS RELACIONADOS A CERTIFICADOS
public static function certificate_created(\core\event\base $event) {
atualizaCertificadoEVL($event->other);
}
//
// EVENTOS RELACIONADOS A CATEGORIAS
//
@ -66,9 +71,8 @@ class block_escola_modelo_observer {
public static function course_category_updated(\core\event\base $event) {
global $DB, $CFG;
$categoria = $DB->get_record($event->objecttable,array('id'=>$event->objectid));
// 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
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
atualizaCategoriaEVL($categoria);
}

40
classes/util.php

@ -4,7 +4,7 @@
*/
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.
@ -56,7 +56,6 @@ function categoriaPublica($category) {
*/
function atualizaCursoEVL($curso, $visivel = null) {
global $DB, $CFG, $USER;
mtrace("curso " . $curso->id);
// Detecta status, caso ele não tenha sido especificado
@ -87,13 +86,11 @@ function atualizaCursoEVL($curso, $visivel = null) {
"certificador" => $CFG->emSigla,
"carga_horaria" => $ch
);
// Monta o JSON que será enviado ao Web Service
$obj->school = $CFG->emSigla;
$obj->course = $camposCurso;
$obj->key = $CFG->emApplicationToken;
$obj->key = $CFG->emApplicationToken; // Precisa passar a chave do usuário
$json = json_encode($obj);
$response = \Httpful\Request::post($uri)
->sendsJson()
->body($json)
@ -112,14 +109,17 @@ function atualizaCursoEVL($curso, $visivel = null) {
*/
function registraSincronizacaoCurso($curso) {
global $DB;
// VALUES (' . $curso->id . ',' . date('H:i:s') . ')
// ON CONFLICT (' . $curso->id . ') DO UPDATE
// SET time_sync = ?';
$qry = '
INSERT INTO {ilb_sync_course} (course_id, time_sync)
VALUES (?,?)
ON CONFLICT (course_id) DO UPDATE
SET time_sync = ?';
SET time_sync = ?';
$params = array($curso->id, $curso->timemodified, $curso->timemodified);
return $DB->execute($qry, $params);
}
@ -218,7 +218,6 @@ function atualizaCategoriaEVL($categoria) {
function atualizaCertificadoEVL($certificado) {
global $DB, $CFG, $USER;
mtrace("certificado " . $certificado->code);
$school = $DB->get_record('course',array('id'=>'1'));
@ -226,31 +225,31 @@ function atualizaCertificadoEVL($certificado) {
$uri = $CFG->emURLWS . '/api/v1/certificados/adicionar/';
$obj = new StdClass();
$certArray = array();
// Gravação de certificado para envio ao Web Service da EVL
$certItem = array(
'course' => $certificado->courseid,
'student' => $certificado->username,
'course' => $certificado->course,
'student' => $certificado->user,
'date' => $certificado->timecreated,
'grade' => $certificado->finalgrade,
'code' => $certificado->code,
'grade' => $certificado->gradefmt,
'code' => $certificado->id,
);
array_push($certArray, $certItem);
$mainArray = array(
'key' => $CFG->emApplicationToken,
'school' => $CFG->emSigla,
'certificates' => $certArray,
'key' =>$ $CFG->emApplicationToken
);
$json = json_encode($mainArray);
echo "AQUI O CERT ARRAY -> {$json}\n";
$response = \Httpful\Request::post($uri)
->sendsJson()
->body($json)
->send();
->send();
// Se o registro foi criado no servidor, registra em tabela de controle
if(!$response->hasErrors()) {
registraSincronizacaoCertificado($certificado);
@ -264,7 +263,6 @@ function atualizaCertificadoEVL($certificado) {
*/
function registraSincronizacaoCertificado($certificado) {
global $DB;
$qry = '
INSERT INTO {ilb_sync_certificate} (certificate_id, time_sync)
VALUES (?,?)
@ -293,8 +291,8 @@ function atualizaDadosEscola($dadosEscola) {
'name' => $dadosEscola->nome_escola,
'url' => $dadosEscola->url_escola,
'logo' => $dadosEscola->url_logo_escola,
'initials' => $dadosEscola->sigla_escola,
'key' => $CFG->emApplicationToken
'initials' => $dadosEscola->sigla_escola,
'key' => $CFG->emApplicationToken
);
$json = json_encode($schoolArray);

6
db/events.php

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

Loading…
Cancel
Save