Files

59 lines
1.6 KiB
Go
Raw Permalink Normal View History

2018-10-19 15:31:41 -04:00
package main
import (
"encoding/json"
"fmt"
"log"
"net/http"
"os"
"strconv"
2018-10-19 15:31:41 -04:00
"github.com/openaccounting/oa-server/core/api"
"github.com/openaccounting/oa-server/core/auth"
"github.com/openaccounting/oa-server/core/model"
"github.com/openaccounting/oa-server/core/model/db"
"github.com/openaccounting/oa-server/core/model/types"
"github.com/openaccounting/oa-server/core/util"
)
func main() {
//filename is the path to the json config file
var config types.Config
file, err := os.Open("./config.json")
if err != nil {
log.Fatal(fmt.Errorf("failed to open ./config.json with: %s", err.Error()))
2018-10-19 15:31:41 -04:00
}
decoder := json.NewDecoder(file)
err = decoder.Decode(&config)
if err != nil {
log.Fatal(fmt.Errorf("failed to decode ./config.json with: %s", err.Error()))
2018-10-19 15:31:41 -04:00
}
connectionString := config.User + ":" + config.Password + "@" + config.DatabaseAddress + "/" + config.Database
2018-10-19 15:31:41 -04:00
db, err := db.NewDB(connectionString)
if err != nil {
log.Fatal(fmt.Errorf("failed to connect to database with: %s", err.Error()))
}
2018-10-19 15:31:41 -04:00
bc := &util.StandardBcrypt{}
model.NewModel(db, bc, config)
auth.NewAuthService(db, bc)
2018-11-08 11:35:11 -05:00
app, err := api.Init(config.ApiPrefix)
2018-10-19 15:31:41 -04:00
if err != nil {
log.Fatal(fmt.Errorf("failed to create api instance with: %s", err.Error()))
2018-10-19 15:31:41 -04:00
}
if config.CertFile == "" || config.KeyFile == "" {
err = http.ListenAndServe(config.Address+":"+strconv.Itoa(config.Port), app.MakeHandler())
} else {
err = http.ListenAndServeTLS(config.Address+":"+strconv.Itoa(config.Port), config.CertFile, config.KeyFile, app.MakeHandler())
}
log.Fatal(fmt.Errorf("failed to start server with: %s", err.Error()))
2018-10-19 15:31:41 -04:00
}