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
public function execute() {
global $DB;
// Momento do início do procedimento, para fins de gravação em
// tabelas de controle
$syncStartTime = $DB->get_record_sql('SELECT extract(epoch from now())::int8');
$this->sincronizaDadosEscola($syncStartTime);
//$this->sincronizaCursos($syncStartTime);
//$this->sincronizaMatriculas($syncStartTime);
//$this->sincronizaCertificados($syncStartTime);
if(evlHabilitada()) {
// Momento do início do procedimento, para fins de gravação em
// tabelas de controle
$syncStartTime = $DB->get_record_sql('SELECT extract(epoch from now())::int8');
$this->sincronizaDadosEscola($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
$sqlCourses = '
SELECT c.*
SELECT c.*, d.value as ind_publico_evl
FROM {course} c
LEFT JOIN {ilb_sync_course} sc
ON c.id = sc.course_id

225
classes/util.php

@ -186,12 +186,14 @@ function registraSincronizacaoCurso($curso) {
function atualizaCategoriaEVL($categoria) {
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) {
atualizaCursoEVL($curso, $visivel);
foreach ($cursos as $curso) {
atualizaCursoEVL($curso, $visivel);
}
}
}
@ -241,52 +243,55 @@ function atualizaMatriculas($syncStartTime, $courseId = 0) {
function atualizaMatriculaEVL($courseid, $userlist, $publicEVL) {
global $DB;
// Detecta status, caso ele não tenha sido especificado
$visivel = true; //$visivel ?? cursoPublico($curso);
// 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];
}
if( evlHabilitada() ) {
// Detecta status, caso ele não tenha sido especificado
$visivel = true; //$visivel ?? cursoPublico($curso);
// 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];
}
$school = $DB->get_record('course',array('id'=>'1'));
$uri = $CFG->emURLWS . '/api/v1/cursos/registrar/';
$obj = new StdClass();
$camposCurso = array(
"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
$obj->school = $school->shortname; // sigla da escola
$obj->course = $camposCurso;
$obj->key = "k4B5YcbKa619ohu3wxk2xXbmtoxFuQqrwcKEOTAnZi7iy4tl9z";
$json = json_encode($obj);
$response = \Httpful\Request::post($uri)
->sendsJson()
->body($json)
->send();
// Se o registro foi criado no servidor, registra em tabela de controle
if(!$response->hasErrors()) {
registraSincronizacaoMatriculaUsuario($matricula);
} else {
mtrace("Erro sincronizando ". $matricula->fullname . ": " . $response->code . " " );
$school = $DB->get_record('course',array('id'=>'1'));
$uri = $CFG->emURLWS . '/api/v1/cursos/registrar/';
$obj = new StdClass();
$camposCurso = array(
"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
$obj->school = $school->shortname; // sigla da escola
$obj->course = $camposCurso;
$obj->key = "k4B5YcbKa619ohu3wxk2xXbmtoxFuQqrwcKEOTAnZi7iy4tl9z";
$json = json_encode($obj);
$response = \Httpful\Request::post($uri)
->sendsJson()
->body($json)
->send();
// Se o registro foi criado no servidor, registra em tabela de controle
if(!$response->hasErrors()) {
registraSincronizacaoMatriculaUsuario($matricula);
} else {
mtrace("Erro sincronizando ". $matricula->fullname . ": " . $response->code . " " );
}
}
}
@ -312,43 +317,45 @@ function atualizaMatriculaEVL($courseid, $userlist, $publicEVL) {
function atualizaCertificadoEVL($certificado) {
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);
echo "AQUI O CERT ARRAY -> {$json}\n";
if( evlHabilitada() ) {
$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 . " " );
$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);
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) {
global $DB, $CFG, $USER;
$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();
if( evlHabilitada() ) {
$school = $DB->get_record('course',array('id'=>'1'));
// Se o registro foi criado no servidor, registra em tabela de controle
if($response->hasErrors()) {
mtrace("Erro sincronizando dados da escola " . $dadosEscola->sigla_escola);
$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
if($response->hasErrors()) {
mtrace("Erro sincronizando dados da escola " . $dadosEscola->sigla_escola);
}
}
}

Loading…
Cancel
Save