58 lines
1.2 KiB
Go
58 lines
1.2 KiB
Go
package server
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"music-server/pkg/db"
|
|
"net/http"
|
|
"os"
|
|
"strconv"
|
|
"time"
|
|
)
|
|
|
|
type Server struct {
|
|
port int
|
|
}
|
|
|
|
var (
|
|
host = os.Getenv("DB_HOST")
|
|
dbPort = os.Getenv("DB_PORT")
|
|
database = 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 == "" || database == "" || musicPath == "" {
|
|
log.Fatal("Invalid settings")
|
|
}
|
|
|
|
fmt.Printf("host: %s, dbPort: %v, username: %s, password: %s, dbName: %s\n",
|
|
host, dbPort, username, password, database)
|
|
|
|
log.Printf("Path: %s\n", musicPath)
|
|
|
|
db.Migrate_db(host, dbPort, username, password, database)
|
|
|
|
db.InitDB(host, dbPort, username, password, database)
|
|
|
|
// 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
|
|
}
|