oh-my-url/app/main.go

54 lines
1.1 KiB
Go

package main
import (
"log"
"net/http"
"sync"
"github.com/aykhans/oh-my-url/app/config"
"github.com/aykhans/oh-my-url/app/db"
"github.com/aykhans/oh-my-url/app/http_handlers"
)
func main() {
appConfig := config.GetAppConfig()
dbCreate := db.GetDB()
dbCreate.Init()
handlerCreate := httpHandlers.HandlerCreate{DB: dbCreate}
urlCreateMux := http.NewServeMux()
urlCreateMux.HandleFunc("/", handlerCreate.UrlCreate)
urlCreateMux.HandleFunc("/favicon.ico", httpHandlers.FaviconHandler)
dbRead := db.GetDB()
handlerForward := httpHandlers.HandlerForward{DB: dbRead}
urlReadMux := http.NewServeMux()
urlReadMux.HandleFunc("/", handlerForward.UrlForward)
urlReadMux.HandleFunc("/favicon.ico", httpHandlers.FaviconHandler)
var wg sync.WaitGroup
wg.Add(2)
go func() {
defer wg.Done()
for {
err := http.ListenAndServe(":"+appConfig.LISTEN_PORT_CREATE, urlCreateMux)
if err != nil {
log.Println(err)
continue
}
break
}
}()
go func() {
defer wg.Done()
for {
err := http.ListenAndServe(":"+appConfig.LISTEN_PORT_FORWARD, urlReadMux)
if err != nil {
log.Println(err)
continue
}
break
}
}()
wg.Wait()
}