Added support for profiling. Removed the pkg module altogether. Everything except old sync is now using code generated by sqlc.
58 lines
1.2 KiB
Go
58 lines
1.2 KiB
Go
package server
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"music-server/internal/db"
|
|
"net/http"
|
|
"os"
|
|
"strconv"
|
|
"time"
|
|
)
|
|
|
|
type Server struct {
|
|
port int
|
|
}
|
|
|
|
var (
|
|
host = os.Getenv("DB_HOST")
|
|
dbPort = os.Getenv("DB_PORT")
|
|
dbName = os.Getenv("DB_NAME")
|
|
username = os.Getenv("DB_USERNAME")
|
|
password = os.Getenv("DB_PASSWORD")
|
|
musicPath = os.Getenv("MUSIC_PATH")
|
|
)
|
|
|
|
func NewServer() *http.Server {
|
|
|
|
port, _ := strconv.Atoi(os.Getenv("PORT"))
|
|
NewServer := &Server{
|
|
port: port,
|
|
}
|
|
|
|
//conf.SetupDb()
|
|
if host == "" || dbPort == "" || username == "" || password == "" || dbName == "" || musicPath == "" {
|
|
log.Fatal("Invalid settings")
|
|
}
|
|
|
|
fmt.Printf("host: %s, dbPort: %v, username: %s, password: %s, dbName: %s\n",
|
|
host, dbPort, username, password, dbName)
|
|
|
|
log.Printf("Path: %s\n", musicPath)
|
|
|
|
db.Migrate_db(host, dbPort, username, password, dbName)
|
|
|
|
db.InitDB(host, dbPort, username, password, dbName)
|
|
|
|
// Declare Server config
|
|
server := &http.Server{
|
|
Addr: fmt.Sprintf(":%d", NewServer.port),
|
|
Handler: NewServer.RegisterRoutes(),
|
|
IdleTimeout: time.Minute,
|
|
ReadTimeout: 10 * time.Second,
|
|
WriteTimeout: 30 * time.Second,
|
|
}
|
|
|
|
return server
|
|
}
|