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. 225
      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

225
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);
// Detecta status, caso ele não tenha sido especificado
// Hack: enquanto não há campos personalizados no curso, a carga horária $visivel = true; //$visivel ?? cursoPublico($curso);
// precisa ser obtida a partir do idnumber
$idnumber = $curso->idnumber; // Hack: enquanto não há campos personalizados no curso, a carga horária
$ch = 0; // precisa ser obtida a partir do idnumber
if(preg_match("/\_CH([0-9]+)/", $idnumber, $x)) { $idnumber = $curso->idnumber;
$ch = $x[1]; $ch = 0;
} if(preg_match("/\_CH([0-9]+)/", $idnumber, $x)) {
$ch = $x[1];
}
$school = $DB->get_record('course',array('id'=>'1')); $school = $DB->get_record('course',array('id'=>'1'));
$uri = $CFG->emURLWS . '/api/v1/cursos/registrar/'; $uri = $CFG->emURLWS . '/api/v1/cursos/registrar/';
$obj = new StdClass(); $obj = new StdClass();
$camposCurso = array( $camposCurso = array(
"name" => $curso->fullname, "name" => $curso->fullname,
"url" => "", "url" => "",
"description" => $curso->summary, "description" => $curso->summary,
"logo" => "", "logo" => "",
"ead_id" => $curso->id, "ead_id" => $curso->id,
"visible" => $visivel, "visible" => $visivel,
"conteudista" => "", //$school->shortname, "conteudista" => "", //$school->shortname,
"certificador" => $school->shortname, "certificador" => $school->shortname,
"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 = $school->shortname; // sigla da escola $obj->school = $school->shortname; // sigla da escola
$obj->course = $camposCurso; $obj->course = $camposCurso;
$obj->key = "k4B5YcbKa619ohu3wxk2xXbmtoxFuQqrwcKEOTAnZi7iy4tl9z"; $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);
$school = $DB->get_record('course',array('id'=>'1'));
$uri = evlURLWebServices() . '/api/v1/certificados/adicionar/';
$obj = new StdClass();
$certArray = array();
// Gravação de certificado para envio ao Web Service da EVL
$certItem = array(
'course' => $certificado->course,
'student' => $certificado->user,
'date' => $certificado->timecreated,
'grade' => $certificado->gradefmt,
'code' => $certificado->id,
);
array_push($certArray, $certItem);
$mainArray = array(
'key' => evlAPIKey(),
'school' => evlSiglaEscola(),
'certificates' => $certArray,
);
$json = json_encode($mainArray); if( evlHabilitada() ) {
echo "AQUI O CERT ARRAY -> {$json}\n";
$response = \Httpful\Request::post($uri) $school = $DB->get_record('course',array('id'=>'1'));
->sendsJson()
->body($json) $uri = evlURLWebServices() . '/api/v1/certificados/adicionar/';
->send();
$obj = new StdClass();
// Se o registro foi criado no servidor, registra em tabela de controle $certArray = array();
if(!$response->hasErrors()) {
registraSincronizacaoCertificado($certificado); // Gravação de certificado para envio ao Web Service da EVL
} else { $certItem = array(
mtrace("Erro sincronizando certificado " . $certificado->code . ": " . $response->code . " " ); 'course' => $certificado->course,
'student' => $certificado->user,
'date' => $certificado->timecreated,
'grade' => $certificado->gradefmt,
'code' => $certificado->id,
);
array_push($certArray, $certItem);
$mainArray = array(
'key' => evlAPIKey(),
'school' => evlSiglaEscola(),
'certificates' => $certArray,
);
$json = json_encode($mainArray);
echo "AQUI O CERT ARRAY -> {$json}\n";
$response = \Httpful\Request::post($uri)
->sendsJson()
->body($json)
->send();
// Se o registro foi criado no servidor, registra em tabela de controle
if(!$response->hasErrors()) {
registraSincronizacaoCertificado($certificado);
} 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/';
$obj = new StdClass();
// Gravação de certificado para envio ao Web Service da EVL
$schoolArray = array(
'name' => $dadosEscola->nome_escola,
'url' => $dadosEscola->url_escola,
'logo' => $dadosEscola->url_logo_escola,
'initials' => $dadosEscola->sigla_escola,
'key' => evlAPIKey()
);
$json = json_encode($schoolArray);
$response = \Httpful\Request::post($uri)
->sendsJson()
->body($json)
->send();
// Se o registro foi criado no servidor, registra em tabela de controle $uri = evlURLWebServices() . '/api/v1/escolas/registrar/';
if($response->hasErrors()) {
mtrace("Erro sincronizando dados da escola " . $dadosEscola->sigla_escola); $obj = new StdClass();
// Gravação de certificado para envio ao Web Service da EVL
$schoolArray = array(
'name' => $dadosEscola->nome_escola,
'url' => $dadosEscola->url_escola,
'logo' => $dadosEscola->url_logo_escola,
'initials' => $dadosEscola->sigla_escola,
'key' => evlAPIKey()
);
$json = json_encode($schoolArray);
$response = \Httpful\Request::post($uri)
->sendsJson()
->body($json)
->send();
// Se o registro foi criado no servidor, registra em tabela de controle
if($response->hasErrors()) {
mtrace("Erro sincronizando dados da escola " . $dadosEscola->sigla_escola);
}
} }
} }

Loading…
Cancel
Save