)
type Config struct {
- WebHookUrl string
- DatabaseUrl string
+ WebHookUrl string
}
const (
WEB_HOOK_URL = "WEB_HOOK_URL"
- DATABASE_URL = "DATABASE_URL"
)
func ReadConfig() (*Config, error) {
return nil, fmt.Errorf("%s is not set", WEB_HOOK_URL)
}
- databaseUrl := os.Getenv(DATABASE_URL)
- if databaseUrl == "" {
- return nil, fmt.Errorf("%s is not set", DATABASE_URL)
- }
-
return &Config{
- WebHookUrl: webHookUrl,
- DatabaseUrl: databaseUrl,
+ WebHookUrl: webHookUrl,
}, nil
}
context: .
environment:
WEB_HOOK_URL: "${WEB_HOOK_URL:-https://example.com}"
- DATABASE_URL: "${DB_URL:-postgresql://postgres:postgres@db:5432/postgres?application_name=squad_rotation_bot}"
ports:
- "3000:8080"
- depends_on:
- - db
cron:
image: "ubuntu:22.04"
- "./scripts/crontab:/apps/crontab"
depends_on:
- bot
- - db
-
- db:
- image: "postgres:17"
- container_name: postgres_db
- restart: unless-stopped
- environment:
- POSTGRES_USER: "${DB_USER:-postgres}"
- POSTGRES_PASSWORD: "${DB_PASSWORD:-postgres}"
- POSTGRES_DB: "${DB_NAME:-postgres}"
- ports:
- - "5432:5432"
- volumes:
- - ./db_data:/var/lib/postgresql/data
- - ./database/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
- - ./database/seed.sql:/docker-entrypoint-initdb.d/seed.sql:ro
messagingService := services.CreateMessagingService(config)
http.HandleFunc("/api/v1/rotation/trigger", api.TriggerBot(memberService, rotationService, messagingService))
+
http.HandleFunc("/api/v1/rotation/members", func(w http.ResponseWriter, r *http.Request) {
switch r.Method {
case http.MethodGet: