Browse Source

Move code to main

Vova Tkach 6 years ago
parent
commit
aaa8e8d616
3 changed files with 73 additions and 5 deletions
  1. 2 0
      backend.go
  2. 11 0
      frontend.go
  3. 60 5
      main.go

+ 2 - 0
backend.go

@@ -1,5 +1,6 @@
 package main
 
+/*
 import (
 	"database/sql"
 
@@ -36,3 +37,4 @@ func handlerBackEnd(wrapper *wrapper.Wrapper) bool {
 	// Login page
 	return wrapper.TmplBackEnd(templates.CpLogin, nil)
 }
+*/

+ 11 - 0
frontend.go

@@ -1,12 +1,15 @@
 package main
 
+/*
 import (
 	"net/http"
 
 	"golang-fave/engine/wrapper"
 	utils "golang-fave/engine/wrapper/utils"
 )
+*/
 
+/*
 type MenuItem struct {
 	Name   string
 	Link   string
@@ -19,7 +22,9 @@ type TmplData struct {
 	MetaDescription string
 	MenuItems       []MenuItem
 }
+*/
 
+/*
 func handlerFrontEnd(wrapper *wrapper.Wrapper) bool {
 	// Redirect to CP, if MySQL config file is not exists
 	if !utils.IsMySqlConfigExists(wrapper.DirVHostHome) {
@@ -31,6 +36,10 @@ func handlerFrontEnd(wrapper *wrapper.Wrapper) bool {
 	// Connect to database
 
 	// Else logic here
+	if wrapper.R.URL.Path == "/" {
+		return wrapper.TmplFrontEnd("index", nil)
+	}
+
 	if wrapper.R.URL.Path == "/" {
 		return wrapper.TmplFrontEnd("index", TmplData{
 			MetaTitle:       "Meta Title",
@@ -45,5 +54,7 @@ func handlerFrontEnd(wrapper *wrapper.Wrapper) bool {
 			},
 		})
 	}
+
 	return false
 }
+*/

+ 60 - 5
main.go

@@ -2,6 +2,7 @@ package main
 
 import (
 	"context"
+	"database/sql"
 	"flag"
 	"fmt"
 	"log"
@@ -12,8 +13,13 @@ import (
 	"strings"
 	"time"
 
+	_ "github.com/go-sql-driver/mysql"
+
 	"golang-fave/engine/actions"
 	"golang-fave/engine/wrapper"
+
+	templates "golang-fave/engine/wrapper/resources/templates"
+	utils "golang-fave/engine/wrapper/utils"
 )
 
 const C_Debug = !false
@@ -126,10 +132,59 @@ func handler(w http.ResponseWriter, r *http.Request) {
 			}
 
 			// Pages
-			if !(wrapper.R.URL.Path == "/cp" || strings.HasPrefix(wrapper.R.URL.Path, "/cp/")) {
-				return handlerFrontEnd(wrapper)
-			} else {
-				return handlerBackEnd(wrapper)
-			}
+			return handlerPage(wrapper)
 		})
 }
+
+func handlerPage(wrapper *wrapper.Wrapper) bool {
+	if !(wrapper.R.URL.Path == "/cp" || strings.HasPrefix(wrapper.R.URL.Path, "/cp/")) {
+		return handlerFrontEnd(wrapper)
+	} else {
+		return handlerBackEnd(wrapper)
+	}
+}
+
+func handlerFrontEnd(wrapper *wrapper.Wrapper) bool {
+	// Redirect to CP, if MySQL config file is not exists
+	if !utils.IsMySqlConfigExists(wrapper.DirVHostHome) {
+		(*wrapper.W).Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
+		http.Redirect(*wrapper.W, wrapper.R, wrapper.R.URL.Scheme+"://"+wrapper.R.Host+"/cp/", 302)
+		return true
+	}
+
+	// Connect to database
+
+	// Else logic here
+	if wrapper.R.URL.Path == "/" {
+		return wrapper.TmplFrontEnd("index", nil)
+	}
+
+	return false
+}
+
+func handlerBackEnd(wrapper *wrapper.Wrapper) bool {
+	// MySQL config page
+	if !utils.IsMySqlConfigExists(wrapper.DirVHostHome) {
+		return wrapper.TmplBackEnd(templates.CpMySQL, nil)
+	}
+
+	// Connect to database
+	mc, err := utils.MySqlConfigRead(wrapper.DirVHostHome)
+	if wrapper.EngineErrMsgOnError(err) {
+		return true
+	}
+	db, err := sql.Open("mysql", mc.User+":"+mc.Password+"@tcp("+mc.Host+":"+mc.Port+")/"+mc.Name)
+	if wrapper.EngineErrMsgOnError(err) {
+		return true
+	}
+	defer db.Close()
+	err = db.Ping()
+	if wrapper.EngineErrMsgOnError(err) {
+		return true
+	}
+
+	// Check if any user exists
+
+	// Login page
+	return wrapper.TmplBackEnd(templates.CpLogin, nil)
+}