/guardioes-api

API for app "Guardiões da Saúde"

Primary LanguageRubyApache License 2.0Apache-2.0

Guardiões da Saúde API

License

Esse repositório é referente à API usada no aplicativo Guardiões Da Saúde. Logo ela é responsável por todas as requests que são feitas no aplicativo assim como o armazenamento dos dados no banco de dados.

Veja mais em nossa página clicando aqui.

Tecnologias

Usamos nessa API:

Como levantar o ambiente

O que fazer antes

  1. Crie um arquivo chamado 'master.key' na pasta '/config', esse arquivo deve conter uma chave para tudo funcionar corretamente. Você pode conseguir essa chave com algum desenvolvedor do projeto.

  2. Crie um arquivo '.env' na pasta raiz do projeto, esse arquivo deve conter as seguintes variáveis de ambiente e seus valores:

TWITTER_API_CONSUMER_KEY=
TWITTER_API_CONSUMER_SECRET=
TWITTER_API_ACCESS_TOKEN=
TWITTER_API_ACCESS_TOKEN_SECRET=
MAILER_ADRESS=
MAILER_EMAIL=
MAILER_EMAIL_PASSWORD=
GODATA_KEY=
CSV_DATA_KEY=
METABASE_SITE_URL=
METABASE_SECRET_KEY=

O passo 2 pode ser pulado se sua intenção for apenas de rodar a API.

Levantando

Sem logs do rails

docker-compose build
docker-compose up -d

Com logs do rails

docker-compose up

O que fazer depois

Se o ambiente inicializou corretamente, agora basta migrar a base de dados com o comando a seguir:

docker-compose run web rake db:migrate

Teste se tudo está funcionando entrando em http://localhost:3001. Você deverá ver um JSON se tudo funciona normalmente.

Após a migração da base de dados, para o correto funcionamento de todos os features da API, você deve iniciar os cronjobs, para fazer isso:

sudo docker-compose run -d web bundle exec crono RAILS_ENV=development

Erros

Rails

Caso você tome o seguinte erro:

Rails - FATAL: database “myapp_development” does not exist

É preciso criar o banco de dados, então rode:

docker-compose run web rake db:create

E então tente de novo migra o banco de dados, caso dê erro, reinicie o processo.

Key

Caso você tome o seguinte erro:

"/config/initializers/devise.rb: undefined method '[]' for nil:NilClass"

Significa que você está tentando levantar o ambiente sem a key citada acima.

Postgres

O postgres é uma grande fonte de erros.

"Database '...' does not exist"

Basta criar a base de dados

docker-compose exec db bash
...
psql -U postgres
...
create database [nome da base de dados];

Testes

Primeiramente realize o setup do banco de dados de testes

bundle exec rake db:drop RAILS_ENV=test
bundle exec rake db:create RAILS_ENV=test
bundle exec rake db:schema:load RAILS_ENV=test

Basta escrever

rspec

E caso queria testar um modulo em específico

rspec spec/[pasta]/[arquivo]

Continuous Integration

Quando uma novo commit é feito, este sobre pro Travis, onde é rodada a bateria de testes para certificar que nada quebrou.

License & copyright

ProEpi, Associação Brasileira de Profissionais de Epidemiologia de Campo

Licensed under the Apache License 2.0.