endpoitn /routes

This commit is contained in:
Dmitriy Bondarenko 2025-03-27 21:41:11 +00:00
parent a9b47d49e2
commit 1a782a70b3
9 changed files with 40 additions and 46 deletions

2
.gitignore vendored
View File

@ -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

View File

@ -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

View File

@ -26,7 +26,8 @@ WORKDIR /app
# Копируем бинарник из этапа сборки
COPY --from=builder /app .
# Копируем .env файл (если он есть в проекте)
COPY .env .env
# Порт, который будет слушать приложение
EXPOSE 8080

View File

@ -6,4 +6,8 @@
# Схема БД
![Схема БД](docs/Diagram.png)
![Схема БД](docs/Diagram.png)
# Рабочие Endpoints:
- `/routes` - Получить список маршрутов

View File

@ -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 успешно!")

View File

@ -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}

2
go.mod
View File

@ -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

4
go.sum
View File

@ -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=

View File

@ -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)