package main import ( "os" "github.com/rs/zerolog/log" "prayertimes/internal/api" "prayertimes/internal/net" "prayertimes/pkg/diyanetapi" "prayertimes/pkg/diyanetcalc" "prayertimes/pkg/diyanetprovider" ) func main() { port := getDefaultEnv("PORT", "8000") services, err := newServices() if err != nil { log.Fatal().Err(err).Msg("failed to init services") } app := api.New(services) err = app.Listen(":" + port) if err != nil { log.Fatal().Err(err).Msg("exit with an error") } } func newServices() (api.Services, error) { diyanetAPIProvider := diyanetapi.New(net.ReqClient) diyanetCalcProvider := diyanetcalc.New() provider := diyanetprovider.New(diyanetAPIProvider, diyanetCalcProvider) return api.Services{ Provider: provider, }, nil } func getDefaultEnv(name string, defaultValue string) string { v, ok := os.LookupEnv(name) if !ok { return defaultValue } return v }