You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
910 B
Go

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
}