diff --git a/README.md b/README.md index 57fcccd..c760b1a 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,8 @@ http://localhost:3000 /ready /redis/ready -/sqlite/ready +/sql/ready +/sql/create/user/table ``` diff --git a/bin/main b/bin/main index 5963ea2..3451a3c 100755 Binary files a/bin/main and b/bin/main differ diff --git a/src/handlers/sql.go b/src/handlers/sql.go new file mode 100644 index 0000000..e4553f0 --- /dev/null +++ b/src/handlers/sql.go @@ -0,0 +1,63 @@ +package handlers + +import ( + "GoRedis/src/services" + "GoRedis/src/utils" + "encoding/json" + "fmt" + "log" + "net/http" + "strconv" +) + +func sqlRouteError(err string, w http.ResponseWriter) { + log.Println(utils.TextRed(err)) + errResponse := &utils.HTTPResponse{Message: err, Status: http.StatusBadRequest} + errResponseJson, _ := json.Marshal(errResponse) + fmt.Fprint(w, string(errResponseJson)) +} + +func SQLReadyHandler(w http.ResponseWriter, r *http.Request) { + route := utils.SQLReadyRoute + " " + + if r.Method == "GET" { + db, err := services.CreateSQLInstance() + + if err != nil { + sqlRouteError(err.Error(), w) + return + } + defer db.Close() + + response := &utils.HTTPResponse{Message: "SQLite is ready", Status: http.StatusOK} + responseJson, _ := json.Marshal(response) + log.Print(utils.TextGreen(route + strconv.Itoa(response.Status))) + fmt.Fprint(w, string(responseJson)) + return + } + + log.Print(utils.TextRed(route + strconv.Itoa(http.StatusMethodNotAllowed))) + http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) +} + +func SQLCreateUserTableHandler(w http.ResponseWriter, r *http.Request) { + route := utils.SQLCreateUserTableRoute + " " + + if r.Method == "GET" { + err := services.CreateSQLUserTable() + + if err != nil { + sqlRouteError(err.Error(), w) + return + } + + response := &utils.HTTPResponse{Message: "Successfully created the user table.", Status: http.StatusOK} + responseJson, _ := json.Marshal(response) + log.Print(utils.TextGreen(route + strconv.Itoa(response.Status))) + fmt.Fprint(w, string(responseJson)) + return + } + + log.Print(utils.TextRed(route + strconv.Itoa(http.StatusMethodNotAllowed))) + http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) +} diff --git a/src/handlers/sqlite.go b/src/handlers/sqlite.go deleted file mode 100644 index 90baf0a..0000000 --- a/src/handlers/sqlite.go +++ /dev/null @@ -1,30 +0,0 @@ -package handlers - -import ( - "GoRedis/src/services" - "GoRedis/src/utils" - "encoding/json" - "fmt" - "log" - "net/http" - "strconv" -) - -func SQLiteReadyHandler(w http.ResponseWriter, r *http.Request) { - route := utils.SQLReadyRoute + " " - err := services.SQLCreateTable() - - if err != nil { - fmt.Println(utils.TextRed(err.Error())) - errResponse := &utils.HTTPResponse{Message: "Something is wrong", Status: 500} - errResponseJson, _ := json.Marshal(errResponse) - log.Print(utils.TextRed(route + strconv.Itoa(errResponse.Status))) - fmt.Fprint(w, string(errResponseJson)) - return - } - - response := &utils.HTTPResponse{Message: "SQLite is ready", Status: 200} - responseJson, _ := json.Marshal(response) - log.Print(utils.TextGreen(route + strconv.Itoa(response.Status))) - fmt.Fprint(w, string(responseJson)) -} diff --git a/src/main.go b/src/main.go index 5136882..895e760 100644 --- a/src/main.go +++ b/src/main.go @@ -22,7 +22,8 @@ func main() { // * These are all the server routes. http.HandleFunc("/ready", handlers.ReadyHandler) http.HandleFunc("/redis/ready", handlers.RedisReadyHandler) - http.HandleFunc("/sqlite/ready", handlers.SQLiteReadyHandler) + http.HandleFunc("/sql/ready", handlers.SQLReadyHandler) + http.HandleFunc("/sql/create/user/table", handlers.SQLCreateUserTableHandler) // * You can setup the server here. s := &http.Server{ diff --git a/src/services/sqlite_service.go b/src/services/sql_service.go similarity index 94% rename from src/services/sqlite_service.go rename to src/services/sql_service.go index 087439c..6eb3804 100644 --- a/src/services/sqlite_service.go +++ b/src/services/sql_service.go @@ -18,7 +18,7 @@ func CreateSQLInstance() (*sql.DB, error) { return db, nil } -func SQLCreateTable() error { +func CreateSQLUserTable() error { db, err := CreateSQLInstance() if err != nil { diff --git a/src/utils/routes.go b/src/utils/routes.go index e270fd0..30e3342 100644 --- a/src/utils/routes.go +++ b/src/utils/routes.go @@ -1,7 +1,8 @@ package utils const ( - ReadyRoute = "/ready" - RedisReadyRoute = "/redis/ready" - SQLReadyRoute = "/database/ready" + ReadyRoute = "/ready" + RedisReadyRoute = "/redis/ready" + SQLReadyRoute = "/sql/ready" + SQLCreateUserTableRoute = "/sql/create/user/table" )