Mural

O Mural é o cerne da comunicação dentro do Redu. Através dele os usuários podem postar comentários, respostas e pedidos de ajuda. Além disso o Mural é o meio pelo qual as movimentações do sistema são mostradas. No contexto da API, qualquer elemento mostrado no Mural é chamado de status
.

Tipos de status
O recurso que representa uma movimentação no Redu é o status. Dependendo do tipo de movimentação, o status possui um tipo (diferenciado através do type
) diferente.
Todos os tipos de Status possuem as seguintes propriedades:
Atributo | Descrição | Exemplo |
---|---|---|
id | Identificador único do Status | 1 |
type | Tipo do status | Activity , Help , Answer e Log |
created_at | Data de criação do Status | 2013-03-13T23:47:25-03:00 |
user | Representação do User que criou o status | Ver User |
text | Texto escrito pelo usuário ou mensagem do sistema | "adicionou a sua rede de contatos" |
Tipo Activity
Status com o tipo Activity são um tipo de movimentação explicitamente criada pelo usuário. Por exemplo, um post no mural da disciplina ou do usuário cria um status do tipo Activity. Este é o tipo mais comum de status.
O Status do tipo Activity pode ser respondido por outras pessoas. Tais respostas estão acessíveis através do link answers
. Além disso, o Activity se relaciona com user
e statusable
. Ver exemplos abaixo:
Link | Descrição | Exemplo |
---|---|---|
user | Link para o usuário que criou o status | http://www.redu.com.br/api/users/guiocavalcanti |
answers | Link para respostas do Activity | http://www.redu.com.br/api/statuses/107070/answers |
statusable | Link para o recurso onde o Activity foi criado | http://www.redu.com.br/api/lectures/5874-apresentacao. Pode ser User , Space ou Lecture |
self | Link para o Activity sendo visualizado | http://www.redu.com.br/api/statuses/1212 |
Atributo | Descrição | Exemplo |
---|---|---|
answers_count | Quantidade de resposta | 3 |
Tipo Help

Bem parecido com o Activity, Status do tipo Help representam pedidos de ajuda ou perguntas dos usuários. Eles só podem ser criados nos murais das aulas (lecture). No fim do dia, Status com o tipo Help têm a mesma função do Activity, só há uma restrição dos locais onde eles podem ser criados e a representação na interface (ver figura).
O Status do tipo Help também pode ser respondido por outras pessoas. Tais respostas estão acessíveis através do link answers
. Além disso, o Help se relaciona com user
e statusable
através de link. Ver exemplos abaixo:
Link | Descrição | Exemplo |
---|---|---|
user | Link para o usuário que criou o status | http://www.redu.com.br/api/users/guiocavalcanti |
answers | Link para respostas do Help | http://www.redu.com.br/api/statuses/107070/answers |
statusable | Link para o recurso onde o Help foi criado | http://www.redu.com.br/api/lectures/5874-apresentacao. Pode ser apenas uma Lecture |
self | Link para o Help sendo visualizado | http://www.redu.com.br/api/statuses/1212 |
Atributo | Descrição | Exemplo |
---|---|---|
answers_count | Quantidade de resposta | 7 |
Tipo Answer
Como dito acima, os Activity e Help podem ser respondidos por outros usuários. É aí que precisamos do Status do tipo Answer. Eles se relacionam com um Status através do link in_response_to
. Diferente dos Activity e Help, os Answer não podem ser respondidos.
Link | Descrição | Exemplo |
---|---|---|
user | Link para o usuário que criou o status | http://www.redu.com.br/api/users/guiocavalcanti |
in_response_to | Link do Activity ou Help que originou esta resposta | http://www.redu.com.br/api/statuses/107070/answers |
self | Link para o Answer sendo visualizado | http://www.redu.com.br/api/statuses/1212 |
Atributo | Descrição | Exemplo |
---|---|---|
id | Identificador único do Status | 1 |
type | Tipo do status | Activity , Help , Answer e Log |
created_at | Data de criação do Status | 2013-03-13T23:47:25-03:00 |
user | Representação do User que criou o status | Ver User |
text | Texto escrito pelo usuário ou mensagem do sistema | "adicionou a sua rede de contatos" |
Tipo Log
Este é o único tipo de Status que independe da ação do usuário para serem criados. O Status tipo Log são gerados automáticamente pelo Redu quando certos tipos de ações ocorrem. Por exemplo, quando o usuário atualiza seu perfil no Redu, um Log é criado representando esta ação.
Em geral Logs são utilizados para representar as alterações dos usuários no Redu. As ações que criam Logs são:
- Adição de Aulas num Módulo (logeable_type
Lecture
) - Criação de Módulo (logeable_type
Subject
) - Criação de Curso (logeable_type
Course
) - Matrícula no Curso (logeable_type
Enrollment
) - Modificação do perfil do Usuário no Curso (logeable_type
User
) - Requisição de conexão no Curso (logeable_type
Friendship
)
Além dos atributos que o Activity, Help e Answer possuem, o Log possui um atributo logeable_type
que representa o tipo do objeto ao qual o Log está associado. Por exemplo, a criação de uma aula gera um Log cujo o logeable_type
é Lecture. Além disso, o Log tem associado a sí um link para o logeable
. No exemplo dado anteriormente o link logeable
conteria o endereço para a aula criada.
GET /api/statuses/:status_id
Retorna um status
com o ID especificado.
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
:status_id | ID do status | N/A |
GET /api/statuses/:status_id/answers
Retorna as respostas de um status. É aplicado aos tipos Help e Activity.
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
:status_id | ID do status | N/A |
POST /api/statuses/:status_id/answers
Cria um status do tipo Answer em resposta a um Activity ou Help.
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
status_id | ID do status em questão | Somente do tipo Activity ou Help |
status[text] | É uma resposta a um comentário ou um pedido de ajuda | Máximo 800 caracteres |
GET /api/users/:user_id/statuses
Retorna todos os status
do usuário. Também é possível filtrar pelo tipo. Caso :type
não seja informado é retornado os status do tipo Activity, Help e Log do usuário.
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
user_id | ID do usuário em questão | N/A |
type ou types[] | Filtragem pelo tipo de status | Pode ser do tipo Activity , Help ou Log . Mais de um type pode ser requisitado utilizando a opção types[] . |
logeable_type | Deve ser usado em conjunto com o type . Permite filtrar Logs baseados no atributo logeable_type |
User , Friendship , Enrollment |
page | Paginação dos resultados. As páginas possuem 25 entradas. Padrão é 1 | Numérico |
Exemplo
Requisição:
GET /api/users/:user_id/statuses?type=Activity
Resposta:
[{
"type": "Activity",
"links": [
{
"rel": "self",
"href": "http://www.redu.com.br/api/statuses/34676"
},
{
"rel": "statusable",
"href": "http://www.redu.com.br/api/spaces/521"
},
{
"rel": "user",
"href": "http://www.redu.com.br/api/users/guiocavalcanti"
},
{
"rel": "answers",
"href": "http://www.redu.com.br/api/statuses/34676/answers"
}
],
"user": {
"social_networks": [
{
"name": "facebook",
"profile": "www.facebook.com/guiocavalcanti"
},
{
"name": "linkedin",
"profile": "br.linkedin.com/in/guiocavalcanti"
},
{
"name": "twitter",
"profile": "www.twitter.com/guiocavalcanti"
}
],
"thumbnails": [
{
"href": "http://s3.amazonaws.com/redu_uploads/users/avatars/4/thumb_32/Guilherme3x4%20copy.jpg?1323711306",
"size": "32x32"
},
{
"href": "http://s3.amazonaws.com/redu_uploads/users/avatars/4/thumb_110/Guilherme3x4%20copy.jpg?1323711306",
"size": "110x110"
}
],
"birthday": "1987-11-24",
"localization": "Recife, Brasil",
"first_name": "Guilherme",
"email": "guilhermec@redu.com.br",
"links": [
{
"rel": "self",
"href": "http://www.redu.com.br/api/users/guiocavalcanti"
},
{
"rel": "enrollments",
"href": "http://www.redu.com.br/api/users/guiocavalcanti/enrollments"
},
{
"rel": "statuses",
"href": "http://www.redu.com.br/api/users/guiocavalcanti/statuses"
},
{
"rel": "timeline",
"href": "http://www.redu.com.br/api/users/guiocavalcanti/statuses/timeline"
},
{
"rel": "contacts",
"href": "http://www.redu.com.br/api/users/guiocavalcanti/contacts"
}
],
"mobile": "+55 (81) 3333-3333",
"friends_count": 98,
"last_name": "Cavalcanti",
"login": "guiocavalcanti",
"id": 4,
"birth_localization": "Recife, Brasil"
},
"id": 34676,
"created_at": "2012-07-02T13:53:50-03:00",
"text": "Todos os componentes da interface do Redu agora são opensource!\r\n\r\nVocês são livres para utilizar os CSS e JavaScript dentro nas suas aplicações. Para incluir e utilizar basta ir em: http://developers.redu.com.br/ui-components\r\n\r\nNo canto superior direito tem um índice de todos os elementos e sobre como cria-los.",
"answers_count": 6
}]
GET /api/users/:user_id/statuses/timeline
Retorna todos os status
do usuário e dos cursos que o usuário faz parte. Diferente do anterior, aqui são mostradas todas as movimentações que interessam ao usuário. É igual ao que se vê na página inicial do Redu.
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
user_id | ID do usuário em questão | N/A |
type ou types[] | Filtragem pelo tipo de status | Pode ser do tipo Activity , Help ou Log . Mais de um type pode ser requisitado utilizando a opção types[] . |
logeable_type | Deve ser usado em conjunto com o type . Permite filtrar Logs baseados no atributo logeable_type |
User , Friendship , CourseEnrollment |
page | Paginação dos resultados. As páginas possuem 25 entradas. Padrão é 1 | Numérico |
POST /api/users/:user_id/statuses
Cria um status do tipo Activity no Mural do usuário.
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
user_id | ID do usuário em questão | N/A |
status[text] | Conteúdo do status | Máximo 800 caracteres |
GET /api/spaces/:space_id/statuses/timeline
Retorna todos os status
da disciplina e das suas aulas. Diferente do anterior, aqui são agregados tanto as postagens da disciplina quanto as das suas aulas. É igual ao que se vê no mural da disciplina.
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
space_id | ID do space | N/A |
type ou types[] | Filtragem pelo tipo de status | Pode ser do tipo Activity , Help ou Log . Mais de um type pode ser requisitado utilizando a opção types[] . |
logeable_type | Deve ser usado em conjunto com o type . Permite filtrar Logs baseados no atributo logeable_type |
User , Friendship , CourseEnrollment |
page | Paginação dos resultados. As páginas possuem 25 entradas. Padrão é 1 | Numérico |
GET /api/spaces/:space_id/statuses
Retorna todos os status
do mural de uma disciplina. Há possibilidade de filtrar os status da disciplina pelo tipo. É importante perceber que os posts listados aqui se limitam àqueles postado diretamente na disciplina.
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
space_id | ID do space | N/A |
type ou types[] | Filtragem pelo tipo de status | Pode ser do tipo Activity , Help ou Log . Mais de um type pode ser requisitado utilizando a opção types[] . |
logeable_type | Deve ser usado em conjunto com o type . Permite filtrar Logs baseados no atributo logeable_type |
User , Friendship , CourseEnrollment |
page | Paginação dos resultados. As páginas possuem 25 entradas. Padrão é 1 | Numérico |
POST /api/spaces/:space_id/statuses
Cria um status no Mural da disciplina.
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
space_id | ID do space em questão | N/A |
status[text] | Conteúdo do status | Máximo 800 caracteres |
Mural de uma Aula
GET /api/lectures/:lecture_id/statuses
Retorna todos os status
do mural de uma aula. Pode se filtrar os status de uma aula pelo tipo.
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
lecture_id | ID da lecture em questão | N/A |
type ou types[] | Filtragem pelo tipo de status | Pode ser do tipo Activity , Help ou Log . Mais de um type pode ser requisitado utilizando a opção types[] . |
logeable_type | Deve ser usado em conjunto com o type . Permite filtrar Logs baseados no atributo logeable_type |
User , Friendship , CourseEnrollment |
POST /api/lectures/:lecture_id/statuses
Cria um status no Mural da aula. Somente neste caso é permitido criar um Help (pedido de ajuda).
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
:lecture_id | ID da lecture em questão | N/A |
status[text] | Conteúdo do status | Máximo 800 caracteres |
status[type] | Tipo do status | Activity ou Help |
DELETE /api/statuses/:status_id
Remove o status.
Parâmetros
Parâmetro | Descrição | Restrições |
---|---|---|
:status_id | ID do status | N/A |