gitextract_eoxbnz9h/ ├── .gitignore ├── README.md ├── module-00 - intro/ │ ├── 1. npm/ │ │ └── scripts.sh │ └── 2.nodejs/ │ ├── app/ │ │ ├── index.js │ │ └── package.json │ └── scripts.sh ├── module-01 - sincronia de funcoes/ │ ├── 1.callbacks/ │ │ └── app/ │ │ ├── index.js │ │ └── package.json │ ├── 2.promise/ │ │ └── app/ │ │ ├── index.js │ │ └── package.json │ ├── 3. async-await/ │ │ └── app/ │ │ ├── index.js │ │ └── package.json │ ├── 4. event-emitter/ │ │ └── app/ │ │ ├── index.js │ │ └── package.json │ └── 5. observable/ │ ├── 1.simple/ │ │ └── index.js │ └── 2. rxjs app/ │ ├── index.js │ ├── package.json │ ├── temp/ │ │ └── teste.1.json │ └── teste.json ├── module-02 - manipulacao de listas/ │ ├── 1.for-forin-forof.js │ ├── 2.map.js │ ├── 3.filter.js │ ├── 4.reduce.js │ ├── README.md │ ├── package.json │ └── service.js ├── module-03 - Introdução a testes automatizados/ │ ├── README.md │ ├── package.json │ ├── service.js │ └── test.js ├── module-04 - ferramentas de linha de comando/ │ ├── cli.js │ ├── database.js │ ├── heroes.json │ ├── heroi.js │ ├── package.json │ └── test.js ├── module-05 - nosso projeto multi-database/ │ ├── README.md │ ├── index.js │ ├── package.json │ ├── scripts/ │ │ ├── mongodb.sh │ │ └── postgres.sql │ └── src/ │ ├── db/ │ │ └── strategies/ │ │ ├── base/ │ │ │ ├── contextStrategy.js │ │ │ └── interfaceDb.js │ │ ├── mongoDbStrategy.js │ │ └── postgresStrategy.js │ └── example1.js ├── module-06 - postgres e modelos relacionais/ │ ├── README.md │ ├── index.js │ ├── package.json │ ├── postgres-example.js │ ├── postgresStrategy.test.js │ ├── scripts/ │ │ └── postgres.sql │ └── src/ │ ├── db/ │ │ └── strategies/ │ │ ├── base/ │ │ │ ├── contextStrategy.js │ │ │ └── interfaceDb.js │ │ ├── mongoDbStrategy.js │ │ └── postgresSQLStrategy.js │ └── example1.js ├── module-07 - mongodb e bancos nao-relacionais/ │ ├── README.md │ ├── index.js │ ├── mongodb-example.js │ ├── package.json │ ├── postgres-example.js │ ├── scripts/ │ │ ├── mongodb.sh │ │ └── postgres.sql │ ├── server.js │ ├── src/ │ │ ├── db/ │ │ │ └── strategies/ │ │ │ ├── base/ │ │ │ │ ├── contextStrategy.js │ │ │ │ └── interfaceDb.js │ │ │ ├── mongoDbStrategy.js │ │ │ └── postgresSQLStrategy.js │ │ └── example1.js │ └── tests/ │ ├── mongodbStrategy.test.js │ └── postgresStrategy.test.js ├── module-08.0 - organização de bases/ │ ├── README.md │ ├── index.js │ ├── mongodb-example.js │ ├── package.json │ ├── postgres-example.js │ ├── scripts/ │ │ ├── mongodb.sh │ │ └── postgres.sql │ ├── server.js │ ├── src/ │ │ ├── db/ │ │ │ └── strategies/ │ │ │ ├── base/ │ │ │ │ ├── contextStrategy.js │ │ │ │ └── interfaceDb.js │ │ │ ├── mongodb/ │ │ │ │ ├── mongoDbStrategy.js │ │ │ │ └── schemas/ │ │ │ │ └── heroSchema.js │ │ │ └── postgres/ │ │ │ ├── postgresSQLStrategy.js │ │ │ └── schemas/ │ │ │ └── heroiSchema.js │ │ └── example1.js │ └── tests/ │ ├── mongodbStrategy.test.js │ └── postgresStrategy.test.js ├── module-08.1 - hapi - estrutura e listar/ │ ├── README.md │ ├── api-example.js │ ├── api.js │ ├── mongodb-example.js │ ├── package.json │ ├── postgres-example.js │ ├── scripts/ │ │ ├── mongodb.sh │ │ └── postgres.sql │ ├── server.js │ ├── src/ │ │ ├── db/ │ │ │ └── strategies/ │ │ │ ├── base/ │ │ │ │ ├── contextStrategy.js │ │ │ │ └── interfaceDb.js │ │ │ ├── mongodb/ │ │ │ │ ├── mongoDbStrategy.js │ │ │ │ └── schemas/ │ │ │ │ └── heroSchema.js │ │ │ └── postgres/ │ │ │ ├── postgresSQLStrategy.js │ │ │ └── schemas/ │ │ │ └── heroiSchema.js │ │ ├── example1.js │ │ └── routes/ │ │ ├── base/ │ │ │ └── baseRoute.js │ │ └── heroRoutes.js │ └── tests/ │ ├── apiHeroes.test.js │ ├── mongodbStrategy.test.js │ └── postgresStrategy.test.js ├── module-08.2 - hapi - cadastrar/ │ ├── README.md │ ├── api-example.js │ ├── api.js │ ├── mongodb-example.js │ ├── package.json │ ├── postgres-example.js │ ├── scripts/ │ │ ├── mongodb.sh │ │ └── postgres.sql │ ├── server.js │ ├── src/ │ │ ├── db/ │ │ │ └── strategies/ │ │ │ ├── base/ │ │ │ │ ├── contextStrategy.js │ │ │ │ └── interfaceDb.js │ │ │ ├── mongodb/ │ │ │ │ ├── mongoDbStrategy.js │ │ │ │ └── schemas/ │ │ │ │ └── heroSchema.js │ │ │ └── postgres/ │ │ │ ├── postgresSQLStrategy.js │ │ │ └── schemas/ │ │ │ └── heroiSchema.js │ │ ├── example1.js │ │ └── routes/ │ │ ├── base/ │ │ │ └── baseRoute.js │ │ └── heroRoutes.js │ └── tests/ │ ├── apiHeroes.test.js │ ├── mongodbStrategy.test.js │ └── postgresStrategy.test.js ├── module-08.3 - hapi - joi/ │ ├── README.md │ ├── api-example.js │ ├── api.js │ ├── mongodb-example.js │ ├── package.json │ ├── postgres-example.js │ ├── scripts/ │ │ ├── mongodb.sh │ │ └── postgres.sql │ ├── server.js │ ├── src/ │ │ ├── db/ │ │ │ └── strategies/ │ │ │ ├── base/ │ │ │ │ ├── contextStrategy.js │ │ │ │ └── interfaceDb.js │ │ │ ├── mongodb/ │ │ │ │ ├── mongoDbStrategy.js │ │ │ │ └── schemas/ │ │ │ │ └── heroSchema.js │ │ │ └── postgres/ │ │ │ ├── postgresSQLStrategy.js │ │ │ └── schemas/ │ │ │ └── heroiSchema.js │ │ ├── example1.js │ │ └── routes/ │ │ ├── base/ │ │ │ └── baseRoute.js │ │ └── heroRoutes.js │ └── tests/ │ ├── apiHeroes.test.js │ ├── mongodbStrategy.test.js │ └── postgresStrategy.test.js ├── module-08.4 - hapi - atualizar/ │ ├── README.md │ ├── api-example.js │ ├── api.js │ ├── mongodb-example.js │ ├── package.json │ ├── postgres-example.js │ ├── scripts/ │ │ ├── mongodb.sh │ │ └── postgres.sql │ ├── server.js │ ├── src/ │ │ ├── db/ │ │ │ └── strategies/ │ │ │ ├── base/ │ │ │ │ ├── contextStrategy.js │ │ │ │ └── interfaceDb.js │ │ │ ├── mongodb/ │ │ │ │ ├── mongoDbStrategy.js │ │ │ │ └── schemas/ │ │ │ │ └── heroSchema.js │ │ │ └── postgres/ │ │ │ ├── postgresSQLStrategy.js │ │ │ └── schemas/ │ │ │ └── heroiSchema.js │ │ ├── example1.js │ │ └── routes/ │ │ ├── base/ │ │ │ └── baseRoute.js │ │ └── heroRoutes.js │ └── tests/ │ ├── apiHeroes.test.js │ ├── mongodbStrategy.test.js │ └── postgresStrategy.test.js ├── module-08.5 - hapi - remover/ │ ├── README.md │ ├── api-example.js │ ├── api.js │ ├── mongodb-example.js │ ├── package.json │ ├── postgres-example.js │ ├── scripts/ │ │ ├── mongodb.sh │ │ └── postgres.sql │ ├── server.js │ ├── src/ │ │ ├── db/ │ │ │ └── strategies/ │ │ │ ├── base/ │ │ │ │ ├── contextStrategy.js │ │ │ │ └── interfaceDb.js │ │ │ ├── mongodb/ │ │ │ │ ├── mongoDbStrategy.js │ │ │ │ └── schemas/ │ │ │ │ └── heroSchema.js │ │ │ └── postgres/ │ │ │ ├── postgresSQLStrategy.js │ │ │ └── schemas/ │ │ │ └── heroiSchema.js │ │ ├── example1.js │ │ └── routes/ │ │ ├── base/ │ │ │ └── baseRoute.js │ │ └── heroRoutes.js │ └── tests/ │ ├── apiHeroes.test.js │ ├── mongodbStrategy.test.js │ └── postgresStrategy.test.js ├── module-08.6 - hapi - swagger/ │ ├── README.md │ ├── api-example.js │ ├── api.js │ ├── mongodb-example.js │ ├── package.json │ ├── postgres-example.js │ ├── scripts/ │ │ ├── mongodb.sh │ │ └── postgres.sql │ ├── server.js │ ├── src/ │ │ ├── db/ │ │ │ └── strategies/ │ │ │ ├── base/ │ │ │ │ ├── contextStrategy.js │ │ │ │ └── interfaceDb.js │ │ │ ├── mongodb/ │ │ │ │ ├── mongoDbStrategy.js │ │ │ │ └── schemas/ │ │ │ │ └── heroSchema.js │ │ │ └── postgres/ │ │ │ ├── postgresSQLStrategy.js │ │ │ └── schemas/ │ │ │ └── heroiSchema.js │ │ ├── example1.js │ │ └── routes/ │ │ ├── base/ │ │ │ └── baseRoute.js │ │ └── heroRoutes.js │ └── tests/ │ ├── apiHeroes.test.js │ ├── mongodbStrategy.test.js │ └── postgresStrategy.test.js ├── module-08.7 - hapi - jwt/ │ ├── README.md │ ├── api-example.js │ ├── api.js │ ├── mongodb-example.js │ ├── package.json │ ├── postgres-example.js │ ├── scripts/ │ │ ├── mongodb.sh │ │ └── postgres.sql │ ├── server.js │ ├── src/ │ │ ├── db/ │ │ │ └── strategies/ │ │ │ ├── base/ │ │ │ │ ├── contextStrategy.js │ │ │ │ └── interfaceDb.js │ │ │ ├── mongodb/ │ │ │ │ ├── mongoDbStrategy.js │ │ │ │ └── schemas/ │ │ │ │ └── heroSchema.js │ │ │ └── postgres/ │ │ │ ├── postgresSQLStrategy.js │ │ │ └── schemas/ │ │ │ └── heroiSchema.js │ │ ├── example1.js │ │ └── routes/ │ │ ├── authRoutes.js │ │ ├── base/ │ │ │ └── baseRoute.js │ │ └── heroRoutes.js │ └── tests/ │ ├── apiHeroes.test.js │ ├── auth.test.js │ ├── mongodbStrategy.test.js │ └── postgresStrategy.test.js ├── module-08.8 - hapi - jwt-herois/ │ ├── README.md │ ├── api-example.js │ ├── api.js │ ├── mongodb-example.js │ ├── package.json │ ├── postgres-example.js │ ├── scripts/ │ │ ├── mongodb.sh │ │ └── postgres.sql │ ├── server.js │ ├── src/ │ │ ├── db/ │ │ │ └── strategies/ │ │ │ ├── base/ │ │ │ │ ├── contextStrategy.js │ │ │ │ └── interfaceDb.js │ │ │ ├── mongodb/ │ │ │ │ ├── mongoDbStrategy.js │ │ │ │ └── schemas/ │ │ │ │ └── heroSchema.js │ │ │ └── postgres/ │ │ │ ├── postgresSQLStrategy.js │ │ │ └── schemas/ │ │ │ └── heroiSchema.js │ │ ├── example1.js │ │ └── routes/ │ │ ├── authRoutes.js │ │ ├── base/ │ │ │ └── baseRoute.js │ │ └── heroRoutes.js │ └── tests/ │ ├── apiHeroes.test.js │ ├── auth.test.js │ ├── mongodbStrategy.test.js │ └── postgresStrategy.test.js ├── module-08.9 - hapi - user-validation/ │ ├── README.md │ ├── api-example.js │ ├── api.js │ ├── mongodb-example.js │ ├── package.json │ ├── postgres-example.js │ ├── scripts/ │ │ ├── mongodb.sh │ │ └── postgres.sql │ ├── server.js │ ├── src/ │ │ ├── db/ │ │ │ └── strategies/ │ │ │ ├── base/ │ │ │ │ ├── contextStrategy.js │ │ │ │ └── interfaceDb.js │ │ │ ├── mongodb/ │ │ │ │ ├── mongoDbStrategy.js │ │ │ │ └── schemas/ │ │ │ │ └── heroSchema.js │ │ │ └── postgres/ │ │ │ ├── postgresSQLStrategy.js │ │ │ └── schemas/ │ │ │ ├── heroiSchema.js │ │ │ └── userSchema.js │ │ ├── example1.js │ │ ├── helpers/ │ │ │ └── passwordHelper.js │ │ └── routes/ │ │ ├── authRoutes.js │ │ ├── base/ │ │ │ └── baseRoute.js │ │ └── heroRoutes.js │ └── tests/ │ ├── apiHeroes.test.js │ ├── auth.test.js │ ├── mongodbStrategy.test.js │ ├── passwordHelper.test.js │ └── postgresStrategy.test.js ├── module-09 - enviroment/ │ ├── README.md │ ├── api-example.js │ ├── api.js │ ├── mongodb-example.js │ ├── package.json │ ├── postgres-example.js │ ├── scripts/ │ │ ├── mongodb.sh │ │ └── postgres.sql │ ├── server.js │ ├── src/ │ │ ├── db/ │ │ │ └── strategies/ │ │ │ ├── base/ │ │ │ │ ├── contextStrategy.js │ │ │ │ └── interfaceDb.js │ │ │ ├── mongodb/ │ │ │ │ ├── mongoDbStrategy.js │ │ │ │ └── schemas/ │ │ │ │ └── heroSchema.js │ │ │ └── postgres/ │ │ │ ├── postgresSQLStrategy.js │ │ │ └── schemas/ │ │ │ ├── heroiSchema.js │ │ │ └── userSchema.js │ │ ├── example1.js │ │ ├── helpers/ │ │ │ └── passwordHelper.js │ │ └── routes/ │ │ ├── authRoutes.js │ │ ├── base/ │ │ │ └── baseRoute.js │ │ └── heroRoutes.js │ └── tests/ │ ├── apiHeroes.test.js │ ├── auth.test.js │ ├── mongodbStrategy.test.js │ ├── passwordHelper.test.js │ └── postgresStrategy.test.js ├── module-10 - production-mongodb-postgres/ │ ├── .gitignore │ ├── Procfile │ ├── README.md │ ├── api-example.js │ ├── api.js │ ├── mongodb-example.js │ ├── package.json │ ├── postgres-example.js │ ├── scripts/ │ │ ├── mongodb.sh │ │ └── postgres.sql │ ├── server.js │ ├── src/ │ │ ├── db/ │ │ │ └── strategies/ │ │ │ ├── base/ │ │ │ │ ├── contextStrategy.js │ │ │ │ └── interfaceDb.js │ │ │ ├── mongodb/ │ │ │ │ ├── mongoDbStrategy.js │ │ │ │ └── schemas/ │ │ │ │ └── heroSchema.js │ │ │ └── postgres/ │ │ │ ├── postgresSQLStrategy.js │ │ │ └── schemas/ │ │ │ ├── heroiSchema.js │ │ │ └── userSchema.js │ │ ├── example1.js │ │ ├── helpers/ │ │ │ └── passwordHelper.js │ │ └── routes/ │ │ ├── authRoutes.js │ │ ├── base/ │ │ │ └── baseRoute.js │ │ └── heroRoutes.js │ └── tests/ │ ├── apiHeroes.test.js │ ├── auth.test.js │ ├── mongodbStrategy.test.js │ ├── passwordHelper.test.js │ └── postgresStrategy.test.js └── module-11 - istanbul/ ├── .gitignore ├── Procfile ├── README.md ├── api-example.js ├── api.js ├── mongodb-example.js ├── package.json ├── postgres-example.js ├── scripts/ │ ├── mongodb.sh │ └── postgres.sql ├── server.js ├── src/ │ ├── db/ │ │ └── strategies/ │ │ ├── base/ │ │ │ ├── contextStrategy.js │ │ │ └── interfaceDb.js │ │ ├── mongodb/ │ │ │ ├── mongoDbStrategy.js │ │ │ └── schemas/ │ │ │ └── heroSchema.js │ │ └── postgres/ │ │ ├── postgresSQLStrategy.js │ │ └── schemas/ │ │ ├── heroiSchema.js │ │ └── userSchema.js │ ├── example1.js │ ├── helpers/ │ │ └── passwordHelper.js │ └── routes/ │ ├── authRoutes.js │ ├── base/ │ │ └── baseRoute.js │ ├── heroRoutes.js │ └── utilRoutes.js └── tests/ ├── apiHeroes.test.js ├── auth.test.js ├── mongodbStrategy.test.js ├── passwordHelper.test.js └── postgresStrategy.test.js