Fork me on GitHub

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
email 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