Matrícula

Recurso que representa a matrícula de usuários em cursos. Foi desenvolvido de tal forma que abstrai o fato do usuário estar presente ou não no Redu.
Caso o e-mail não esteja registrado na plataforma um convite será enviado dando a possibilidade de registro e posterior convite para o curso. Possui uma máquina de estado como definida abaixo (propriedade state
):
Atributos:
Atributo | Descrição |
---|---|
ID | Identificador da matrícula |
state | Estado atual da matrícula. Exemplo: waiting |
E-mail do usuário a ser convidado. Apenas utilizado quando o usuário ainda não faz parte do Redu | |
token | Token de convite do usuário |
role | Papel do usuário no Curso. Apenas disponível se o usuário já aceitou o convite. Os estados possíveis são: member , teacher , environment_admin e tutor |

Estados:
Estado | Descrição |
---|---|
waiting | Nenhuma ação foi realizada |
redu_invited | Quando o e-mail não está cadastrado no Redu e uma mensagem de convite foi enviada |
invited | Quando o e-mail está cadastrado no Redu e o usuário recebe o convite para o curso. Notificação aparecerá na home do usuário |
approved | Usuário aceitou o convite |
rejected | Usuário recusou o convite |
GET /api/enrollments/:id
Retorna a matrícula em questão.
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
id | ID da matrícula | N/A |
POST /api/courses/:course_id/enrollments
Cria uma matrícula no curso em questão. Caso o usuário faça parte do Redu a matrícula irá para o estado invited
e uma notificação aparecerá em sua home perguntando se deseja participar do curso. Caso o usuário não faça parte do Redu, antes de ir para o estado invited
a matrícula passará para um estado redu_invited
. Isso significa que um e-mail de convite foi enviado.
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
id | ID ou path do curso | N/A |
enrollment[email] | E-mail do usuário que será convidado | Máximo 40 caracteres; deve ser único |
Exemplo
POST /api/courses/foo/enrollments
Payload:
{
"enrollment" : {
"email" : "foo@bar.com"
}
}
Resposta:
{
"created_at": "2012-03-05T07:38:06-03:00",
"token": "18EM2oxY37g",
"id": 4,
"links": [{
"href": "http://www.redu.com.br/api/enrollments/4",
"rel": "self"
}, {
"href": "http://www.redu.com.br/api/courses/course-name",
"rel": "course"
}, {
"href": "http://www.redu.com.br/api/courses/environment-name",
"rel": "environment"
}, {
"rel": "user"
}],
"state": "redu_invited",
"email": "foo@bar.com"
}
GET /api/courses/:course_id/enrollments
Listagem de matrículas de um curso. É importante perceber que podem existir mais matrículas do que usuários efetivamente cadastrados no curso (estado redu_invited
ou invited
).
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
id | ID ou path do curso | N/A |
GET /api/users/:user_id/enrollments
Listagem de matrículas de um usuário.
Autorização
Para fazer esta requisição é necessário ter direitos administrativos para um User. Ou seja, apenas o próprio user pode ver os seus enrollments.
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
user_id | ID do User | N/A |
courses_ids[] | IDs dos Cursos. Permite a filtragem de Enrollment por cursos | N/A |
Exemplo:
GET /api/users/4/enrollments?courses_ids[]=50&courses_ids[]=81
[
{
"links": [
{ "rel": "environment", "href": "http://www.redu.com.br/api/courses/www" },
{ "rel": "course", "href": "http://www.redu.com.br/api/courses/recife" },
{ "rel": "user", "href": "http://www.redu.com.br/api/users/guiocavalcanti" },
{ "rel": "self", "href": "http://www.redu.com.br/api/enrollments/5939" }
],
"state": "approved",
"id": 5939,
"created_at": "2012-04-09T20:01:19-03:00",
"role": "member",
"updated_at": "2013-04-08T04:06:58-03:00"
},
{
"links": [
{ "rel": "environment", "href": "http://www.redu.com.br/api/courses/ium" },
{ "rel": "course", "href": "http://www.redu.com.br/api/courses/graduacao-em-ciencia-da-computacao" },
{ "rel": "user", "href": "http://www.redu.com.br/api/users/guiocavalcanti" },
{ "rel": "self", "href": "http://www.redu.com.br/api/enrollments/5264" }
],
"state": "approved",
"id": 5264,
"created_at": "2012-03-21T23:56:07-03:00",
"role": "environment_admin",
"updated_at": "2013-01-24T08:12:39-02:00"
}
]
DELETE /api/enrollments/:id
Remove a matrícula especificada bem como o usuário associado a mesma (caso exista). O usuário perderá acesso ao curso e às suas disciplinas.
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
id | ID ou path do curso | N/A |