API do sistema CGR da CJR.
- Ruby v2.6.6
- Rails v5.2.4
O deploy é feito após um merge para a branch master ser aprovado. Após cada pull request ou merge, o workflow de testes irá rodar através do GitHub Actions. Recomendo fortemente que não confirme merges para a master até o resultado estar pronto. Os arquivos de workflow podem ser acessados na pasta .github/workflows
Para rodar os testes em seu ambiente de desenvolvimento local, basta utilizar o comando:
bundle exec rspec
em um terminal bash ou zsh.
Atualmente, a API conta com as seguintes entidades:
Um membro da empresa que será cadastrado no sistema.
value | type |
---|---|
id | integer |
name | string |
deleted_at | date_time |
Uma equipe, um grupo de membros reunidos por um membro propósito com diferentes responsabilidades.
value | type |
---|---|
id | integer |
name | string |
initials | string |
deleted_at | date_time |
A função que um membro executa dentro de um time.
value | type |
---|---|
id | integer |
team_id | foreign_key |
name | string |
deleted_at | date_time |
Relação entre um membro e um cargo (e, por extensão, um time). Essas relações normalmente não são apagadas, mas passam por um processo de soft delete para manter salvo os registros da relação dos membros com os cargos que participou
value | type |
---|---|
id | integer |
member_id | foreign_key |
role_id | foreign_key |
entry_date | date_time |
deleted_at | date_time |
GET /members
GET /members/:id
POST /members
PATCH/PUT /members/:id
DELETE /members/:id/:hard_delete
Retorna todos os membros não apagados
- content_type: application/json
- response: member[]{ teams, roles }
Retorna um membro com base em seu id
, caso não esteja apagado
- content_type: application/json
- response: member{ teams, roles }
Cria um novo membro. Caso não seja passado um role_id
, é associado ao cargo de visitante.
- body: name, role_id(opt)
- content_type: application/json
- response: member{ teams, roles }
Atualiza as informações de um membro. Pode adicioná-lo ou removê-lo de um cargo e também restaurá-lo caso tenha sido apagado.
- body:
- member_params: name, deleted_at
- opt_params: role_id, leave_role
- content_type: application/json
- response: member{ teams, roles }
Atualiza o valor de deleted_at
para o momento da requisição. Caso seja passado algum valor para :hard_delete, apaga o registro do membro no lugar disso.
- response: nil
GET /teams
GET /teams/:id
POST /teams
PATCH/PUT /teams/:id
DELETE /teams/:id
Retorna todos os times não apagados
- content_type: application/json
- response: teams[]{ roles, members }
Retorna um time com base em seu id
, caso não esteja apagado
- content_type: application/json
- response: team{ roles, members}
Cria um novo time.
- body: name, initials(opt)
- content_type: application/json
- response: team{ roles, members }
Atualiza as informações de um time. Pode restaurar o time caso tenha sido apagado.
- body: name, initials
- content_type: application/json
- response: team{ roles, members }
Atualiza o valor de deleted_at
para o momento da requisição.
- response: nil
GET /teams/:team_id/roles
GET /roles/:id
POST /teams/:team_id/roles
PATCH/PUT /roles/:id
DELETE /roles/:id
Retorna todos os cargos não apagados de um time
- content_type: application/json
- response: roles[]{ team, members }
Retorna um cargo com base em seu id
, caso não esteja apagado
- content_type: application/json
- response: role{ team, members}
Cria um novo cargo em um time específico.
- body: name
- content_type: application/json
- response: role{ team, members}
Atualiza as informações de um cargo, com base em seu id
. Pode restaurar o cargo caso tenha sido apagado.
- body: name, deleted_at
- content_type: application/json
- response: role{ team, members}
Atualiza o valor de deleted_at
para o momento da requisição.
- response: nil