Browse Source

Métodos de sincronização devem ser executados apenas se EVL estiver habilitada

master
Matheus Garcia 6 years ago
parent
commit
b7a323a936
  1. 21
      classes/task/escola_modelo.php
  2. 203
      classes/util.php

21
classes/task/escola_modelo.php

@ -25,14 +25,17 @@ class escola_modelo extends \core\task\scheduled_task {
// Ponto de entrada da task // Ponto de entrada da task
public function execute() { public function execute() {
global $DB; global $DB;
// Momento do início do procedimento, para fins de gravação em
// tabelas de controle if(evlHabilitada()) {
$syncStartTime = $DB->get_record_sql('SELECT extract(epoch from now())::int8'); // Momento do início do procedimento, para fins de gravação em
// tabelas de controle
$this->sincronizaDadosEscola($syncStartTime); $syncStartTime = $DB->get_record_sql('SELECT extract(epoch from now())::int8');
//$this->sincronizaCursos($syncStartTime);
//$this->sincronizaMatriculas($syncStartTime); $this->sincronizaDadosEscola($syncStartTime);
//$this->sincronizaCertificados($syncStartTime); //$this->sincronizaCursos($syncStartTime);
//$this->sincronizaMatriculas($syncStartTime);
//$this->sincronizaCertificados($syncStartTime);
}
} }
/** /**
@ -79,7 +82,7 @@ class escola_modelo extends \core\task\scheduled_task {
// Obtem todos os cursos pendentes de sincronização // Obtem todos os cursos pendentes de sincronização
$sqlCourses = ' $sqlCourses = '
SELECT c.* SELECT c.*, d.value as ind_publico_evl
FROM {course} c FROM {course} c
LEFT JOIN {ilb_sync_course} sc LEFT JOIN {ilb_sync_course} sc
ON c.id = sc.course_id ON c.id = sc.course_id

203
classes/util.php

@ -186,12 +186,14 @@ function registraSincronizacaoCurso($curso) {
function atualizaCategoriaEVL($categoria) { function atualizaCategoriaEVL($categoria) {
global $DB; global $DB;
$visivel = categoriaPublica($categoria); if( evlHabilitada() ) {
$visivel = categoriaPublica($categoria);
$cursos = $DB->get_records('course', array('category'=>$categoria->id)); $cursos = $DB->get_records('course', array('category'=>$categoria->id));
foreach ($cursos as $curso) { foreach ($cursos as $curso) {
atualizaCursoEVL($curso, $visivel); atualizaCursoEVL($curso, $visivel);
}
} }
} }
@ -241,52 +243,55 @@ function atualizaMatriculas($syncStartTime, $courseId = 0) {
function atualizaMatriculaEVL($courseid, $userlist, $publicEVL) { function atualizaMatriculaEVL($courseid, $userlist, $publicEVL) {
global $DB; global $DB;
// Detecta status, caso ele não tenha sido especificado if( evlHabilitada() ) {
$visivel = true; //$visivel ?? cursoPublico($curso);
// Hack: enquanto não há campos personalizados no curso, a carga horária // Detecta status, caso ele não tenha sido especificado
// precisa ser obtida a partir do idnumber $visivel = true; //$visivel ?? cursoPublico($curso);
$idnumber = $curso->idnumber;
$ch = 0;
if(preg_match("/\_CH([0-9]+)/", $idnumber, $x)) {
$ch = $x[1];
}
$school = $DB->get_record('course',array('id'=>'1')); // Hack: enquanto não há campos personalizados no curso, a carga horária
// precisa ser obtida a partir do idnumber
$idnumber = $curso->idnumber;
$ch = 0;
if(preg_match("/\_CH([0-9]+)/", $idnumber, $x)) {
$ch = $x[1];
}
$uri = $CFG->emURLWS . '/api/v1/cursos/registrar/'; $school = $DB->get_record('course',array('id'=>'1'));
$obj = new StdClass(); $uri = $CFG->emURLWS . '/api/v1/cursos/registrar/';
$camposCurso = array( $obj = new StdClass();
"name" => $curso->fullname,
"url" => "",
"description" => $curso->summary,
"logo" => "",
"ead_id" => $curso->id,
"visible" => $visivel,
"conteudista" => "", //$school->shortname,
"certificador" => $school->shortname,
"carga_horaria" => $ch
);
// Monta o JSON que será enviado ao Web Service $camposCurso = array(
$obj->school = $school->shortname; // sigla da escola "name" => $curso->fullname,
$obj->course = $camposCurso; "url" => "",
$obj->key = "k4B5YcbKa619ohu3wxk2xXbmtoxFuQqrwcKEOTAnZi7iy4tl9z"; "description" => $curso->summary,
"logo" => "",
"ead_id" => $curso->id,
"visible" => $visivel,
"conteudista" => "", //$school->shortname,
"certificador" => $school->shortname,
"carga_horaria" => $ch
);
// Monta o JSON que será enviado ao Web Service
$obj->school = $school->shortname; // sigla da escola
$obj->course = $camposCurso;
$obj->key = "k4B5YcbKa619ohu3wxk2xXbmtoxFuQqrwcKEOTAnZi7iy4tl9z";
$json = json_encode($obj); $json = json_encode($obj);
$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()) {
registraSincronizacaoMatriculaUsuario($matricula); registraSincronizacaoMatriculaUsuario($matricula);
} else { } else {
mtrace("Erro sincronizando ". $matricula->fullname . ": " . $response->code . " " ); mtrace("Erro sincronizando ". $matricula->fullname . ": " . $response->code . " " );
}
} }
} }
@ -312,43 +317,45 @@ function atualizaMatriculaEVL($courseid, $userlist, $publicEVL) {
function atualizaCertificadoEVL($certificado) { function atualizaCertificadoEVL($certificado) {
global $DB, $CFG, $USER; global $DB, $CFG, $USER;
mtrace("certificado " . $certificado->code);
if( evlHabilitada() ) {
$school = $DB->get_record('course',array('id'=>'1'));
$school = $DB->get_record('course',array('id'=>'1'));
$uri = evlURLWebServices() . '/api/v1/certificados/adicionar/';
$uri = evlURLWebServices() . '/api/v1/certificados/adicionar/';
$obj = new StdClass();
$certArray = array(); $obj = new StdClass();
$certArray = array();
// Gravação de certificado para envio ao Web Service da EVL
$certItem = array( // Gravação de certificado para envio ao Web Service da EVL
'course' => $certificado->course, $certItem = array(
'student' => $certificado->user, 'course' => $certificado->course,
'date' => $certificado->timecreated, 'student' => $certificado->user,
'grade' => $certificado->gradefmt, 'date' => $certificado->timecreated,
'code' => $certificado->id, 'grade' => $certificado->gradefmt,
); 'code' => $certificado->id,
array_push($certArray, $certItem); );
$mainArray = array( array_push($certArray, $certItem);
'key' => evlAPIKey(), $mainArray = array(
'school' => evlSiglaEscola(), 'key' => evlAPIKey(),
'certificates' => $certArray, 'school' => evlSiglaEscola(),
); 'certificates' => $certArray,
);
$json = json_encode($mainArray);
echo "AQUI O CERT ARRAY -> {$json}\n"; $json = json_encode($mainArray);
echo "AQUI O CERT ARRAY -> {$json}\n";
$response = \Httpful\Request::post($uri)
->sendsJson() $response = \Httpful\Request::post($uri)
->body($json) ->sendsJson()
->send(); ->body($json)
->send();
// Se o registro foi criado no servidor, registra em tabela de controle
if(!$response->hasErrors()) { // Se o registro foi criado no servidor, registra em tabela de controle
registraSincronizacaoCertificado($certificado); if(!$response->hasErrors()) {
} else { registraSincronizacaoCertificado($certificado);
mtrace("Erro sincronizando certificado " . $certificado->code . ": " . $response->code . " " ); } else {
mtrace("Erro sincronizando certificado " . $certificado->code . ": " . $response->code . " " );
}
} }
} }
@ -374,31 +381,33 @@ function registraSincronizacaoCertificado($certificado) {
function atualizaDadosEscola($dadosEscola) { function atualizaDadosEscola($dadosEscola) {
global $DB, $CFG, $USER; global $DB, $CFG, $USER;
$school = $DB->get_record('course',array('id'=>'1')); if( evlHabilitada() ) {
$school = $DB->get_record('course',array('id'=>'1'));
$uri = evlURLWebServices() . '/api/v1/escolas/registrar/'; $uri = evlURLWebServices() . '/api/v1/escolas/registrar/';
$obj = new StdClass(); $obj = new StdClass();
// Gravação de certificado para envio ao Web Service da EVL // Gravação de certificado para envio ao Web Service da EVL
$schoolArray = array( $schoolArray = array(
'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' => evlAPIKey() 'key' => evlAPIKey()
); );
$json = json_encode($schoolArray); $json = json_encode($schoolArray);
$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()) {
mtrace("Erro sincronizando dados da escola " . $dadosEscola->sigla_escola); mtrace("Erro sincronizando dados da escola " . $dadosEscola->sigla_escola);
}
} }
} }

Loading…
Cancel
Save