diff --git a/.gitignore b/.gitignore index d43a39d..2cd71b7 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ *.dll *.so *.dylib +.env # Test binary, built with `go test -c` *.test @@ -21,4 +22,3 @@ # Go workspace file go.work -.env diff --git a/.gitignore copy b/.gitignore copy deleted file mode 100644 index 2cd71b7..0000000 --- a/.gitignore copy +++ /dev/null @@ -1,24 +0,0 @@ -# ---> Go -# If you prefer the allow list template instead of the deny list, see community template: -# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore -# -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib -.env - -# Test binary, built with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -# vendor/ - -# Go workspace file -go.work - diff --git a/Dockerfile b/Dockerfile index 2c531f9..7d987a5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,7 +26,8 @@ WORKDIR /app # Копируем бинарник из этапа сборки COPY --from=builder /app . - +# Копируем .env файл (если он есть в проекте) +COPY .env .env # Порт, который будет слушать приложение EXPOSE 8080 diff --git a/README.md b/README.md index 5bdd0a4..5fbe3a9 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,8 @@ # Схема БД -![Схема БД](docs/Diagram.png) \ No newline at end of file +![Схема БД](docs/Diagram.png) + +# Рабочие Endpoints: + +- `/routes` - Получить список маршрутов \ No newline at end of file diff --git a/cmd/api/main.go b/cmd/api/main.go index b6dc021..7459073 100644 --- a/cmd/api/main.go +++ b/cmd/api/main.go @@ -11,15 +11,15 @@ import ( "truck-company/internal/usecase" "github.com/gorilla/mux" - "github.com/joho/godotenv" + _ "github.com/lib/pq" ) func main() { // Загружаем переменные из .env - err := godotenv.Load() - if err != nil { - log.Fatal("Ошибка загрузки .env файла") - } + // err := godotenv.Load() + // if err != nil { + // log.Fatal("Ошибка загрузки .env файла") + // } // Читаем переменные dbHost := os.Getenv("DB_HOST") @@ -43,7 +43,7 @@ func main() { err = db.Ping() if err != nil { - log.Fatal("БД не отвечает:", err) + log.Fatal("БД не отвечает:", err, dsn) } log.Println("Подключение к PostgreSQL успешно!") diff --git a/docker-compose.yml b/docker-compose.yml index 484f02d..1eb45de 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,13 +14,26 @@ services: - "5432:5432" volumes: - ./database/init:/docker-entrypoint-initdb.d - + networks: + - app-network app: + container_name: app build: . ports: - "8080:8080" - environment: - - DB_HOST=postgres - - DB_USER=${POSTGRES_USER} - - DB_PASSWORD=${POSTGRES_PASSWORD} - - DB_NAME=${POSTGRES_DB} + depends_on: + - postgres + env_file: + - .env + networks: + - app-network + +networks: + app-network: + driver: bridge + + # environment: + # - DB_HOST=${DB_HOST} + # - DB_USER=${POSTGRES_USER} + # - DB_PASSWORD=${POSTGRES_PASSWORD} + # - DB_NAME=${POSTGRES_DB} diff --git a/go.mod b/go.mod index 1618e37..f83e12b 100644 --- a/go.mod +++ b/go.mod @@ -4,4 +4,4 @@ go 1.22.2 require github.com/gorilla/mux v1.8.1 -require github.com/joho/godotenv v1.5.1 +require github.com/lib/pq v1.10.9 diff --git a/go.sum b/go.sum index 2788c54..2a964d7 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,4 @@ github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= -github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= -github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= diff --git a/internal/handlers/handlers.go b/internal/handlers/handlers.go index e8faa0f..2d536ae 100644 --- a/internal/handlers/handlers.go +++ b/internal/handlers/handlers.go @@ -21,10 +21,10 @@ func NewTruckCompanyHandler(u *usecase.UseCase) *TruckCompanyHandler { func (h *TruckCompanyHandler) RegisterRoutes(r *mux.Router) { r.HandleFunc("/routes", h.GetRoutes).Methods("GET") - r.HandleFunc("/routes/{route_id}/transport", h.GetTransportByRoute).Methods("GET") - r.HandleFunc("/routes/{route_id}/transport-types", h.GetTransportTypesByRoute).Methods("GET") - r.HandleFunc("/shipments/cost", h.GetShipmentCost).Methods("GET") - r.HandleFunc("/routes/{route_id}/cargo-turnover", h.GetCargoTurnoverByRoute).Methods("GET") + // r.HandleFunc("/routes/{route_id}/transport", h.GetTransportByRoute).Methods("GET") + // r.HandleFunc("/routes/{route_id}/transport-types", h.GetTransportTypesByRoute).Methods("GET") + // r.HandleFunc("/shipments/cost", h.GetShipmentCost).Methods("GET") + // r.HandleFunc("/routes/{route_id}/cargo-turnover", h.GetCargoTurnoverByRoute).Methods("GET") //404 для всех остальных r.HandleFunc("/", http.NotFound)