mirror of
https://github.com/mgerb/mywebsite
synced 2026-01-11 02:12:53 +00:00
67 lines
1.2 KiB
Go
67 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"io/ioutil"
|
|
"log"
|
|
"net/http"
|
|
"os"
|
|
|
|
"github.com/mgerb42/mywebsite/controller/api"
|
|
"github.com/mgerb42/mywebsite/db"
|
|
"github.com/mgerb42/mywebsite/route"
|
|
)
|
|
|
|
//structure for application configurations
|
|
type Config struct {
|
|
Database db.DatabaseInfo `json:"database"`
|
|
Api api.ApiInfo `json:"api"`
|
|
Server ServerConfig `json:"server"`
|
|
}
|
|
|
|
//configuration settings for the web
|
|
type ServerConfig struct {
|
|
Port string `json:"port"`
|
|
}
|
|
|
|
func main() {
|
|
|
|
configurations := readConfig()
|
|
|
|
db.Configure(configurations.Database)
|
|
api.Configure(configurations.Api)
|
|
|
|
db.Mongo.Connect()
|
|
|
|
log.Println("Starting Server...")
|
|
log.Println(http.ListenAndServe(":"+configurations.Server.Port, route.Routes()))
|
|
}
|
|
|
|
//read the config file and return JsonObject struct
|
|
func readConfig() Config {
|
|
|
|
log.Println("Reading config file...")
|
|
|
|
file, e := ioutil.ReadFile("./config.json")
|
|
|
|
if e != nil {
|
|
fmt.Printf("File error: %v\n", e)
|
|
os.Exit(1)
|
|
}
|
|
|
|
fmt.Printf("%s\n", string(file))
|
|
|
|
//m := new(Dispatch)
|
|
//var m interface{}
|
|
var result Config
|
|
|
|
err := json.Unmarshal(file, &result)
|
|
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
|
|
return result
|
|
}
|