This exercise examplifies:
- Clean architecture
- Testing
- Mocking
- Dockerizing
- Linting
- Go
- PostgreSQL
- Docker and docker-compose
- RESTful API
- golangci-lint
- Implement linting
- Implement entity layer
- Implement handler layer
- Implement controller layer
- Implement repository layer
- Initialize architecture in main
- Implement go mod
- Implement GitHub Actions
- Implement POST method for handler layer
- Implement mocks for Create method for controller layer
- Implement Create method for controller layer
- Implement mocks for Create method for repository layer
- Implement Create method for repository layer
- Implement integration test for Create method
- Implement GET method for handler layer
- Implement List method for controller layer
- Implement List method for repository layer
- Implement mocks for List method
- Implement integration test for List method
- Implement GET method for handler layer
- Implement Detail method for controller layer
- Implement Detail method for repository layer
- Implement mocks for Detail method
- Implement integration test for Detail method
- Implement DELETE method for handler layer
- Implement Delete method for controller layer
- Implement Delete method for repository layer
- Implement mocks for Delete method
- Implement integration test for Delete method
- Dockerize Go
- Dockerize PostgreSQL
- Implement docker-compose
- Implement decoder as middleware
- Implement encoder as middleware