Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 3.41 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     "net/http"
  6.     "time"
  7.     "database/sql"
  8.     "log"
  9.     "strconv"
  10.     "github.com/gorilla/mux"
  11.     _ "github.com/mattn/go-sqlite3"
  12. )
  13.  
  14. type Server struct {
  15.     name string
  16.     id   int
  17. }
  18.  
  19. type User struct {
  20.     username string
  21.     userid   int
  22.     usercolor string
  23. }
  24.  
  25.  
  26. func HomeHandler(w http.ResponseWriter, r *http.Request) {
  27.    
  28.     fmt.Fprintf(w, "HomeHandler")
  29. }
  30. func RegisterHandler(w http.ResponseWriter, r *http.Request) {
  31.     // Registers a new user
  32.         fmt.Fprintf(w, "RegisterHandler")
  33.         fmt.Println(w, "RegisterHandler")
  34. }
  35. func ServersHandler(w http.ResponseWriter, r *http.Request) {
  36.    
  37.     fmt.Fprintf(w, "ServersHandler")
  38. }
  39. func CreateServersHandler(w http.ResponseWriter, r *http.Request) {
  40.     vars := mux.Vars(r)
  41.     vars["serverName"] // the book title slug
  42.     vars["serverIP"] // the page
  43.  
  44.     database, _ := sql.Open("sqlite3", "./chattter-tracker.db")
  45.     statement, _ := database.Prepare("CREATE TABLE IF NOT EXISTS server (id INTEGER PRIMARY KEY, serverName TEXT, serverIP TEXT)")
  46.     statement.Exec()
  47.     statement, _ = database.Prepare("INSERT INTO server (serverName, serverIP) VALUES (?, ?)")
  48.     statement.Exec("Nic", "Raboy")
  49.     rows, _ := database.Query("SELECT id, serverName, serverIP FROM server")
  50.     var id int
  51.     var serverName string
  52.     var serverIP string
  53.     for rows.Next() {
  54.             rows.Scan(&id, &serverName, &serverIP)
  55.             fmt.Println(strconv.Itoa(id) + ": " + serverName + " " + serverIP)
  56.     }
  57.     fmt.Fprintf(w, "CreateServersHandler")
  58. }
  59. func ServerInstanceHandler(w http.ResponseWriter, r *http.Request) {
  60.    
  61.     fmt.Fprintf(w, "ServerInstanceHandler")
  62. }
  63. func DeleteServerInstanceHandler(w http.ResponseWriter, r *http.Request) {
  64.    
  65.     fmt.Fprintf(w, "DeleteServerInstanceHandler")
  66. }
  67.  
  68. const GETALL string = "GETALL"
  69. const GETONE string = "GETONE"
  70. const POST string   = "POST"
  71. const PUT string    = "PUT"
  72. const DELETE string = "DELETE"
  73.  
  74. func main() {
  75.  
  76.     r := mux.NewRouter()
  77.  
  78.     // Show some type of landing page
  79.     r.HandleFunc("/", HomeHandler).Methods("GET")
  80.    
  81.     // Display a list of servers, maybe rank them
  82.     r.HandleFunc("/servers", ServersHandler).Methods("GET")
  83.    
  84.     // Register a new server with tracker
  85.     r.HandleFunc("/servers/{serverName}/{serverIP}", CreateServersHandler).Methods("PUT")
  86.     // err := r.Walk(func(route *mux.Route, router *mux.Router, ancestors []*mux.Route) error {
  87.     //  pathTemplate, err := route.GetPathTemplate()
  88.     //  if err == nil {
  89.     //      fmt.Println(chalk.Green, "ROUTE:", pathTemplate)
  90.     //  }
  91.     //  pathRegexp, err := route.GetPathRegexp()
  92.     //  if err == nil {
  93.     //      fmt.Println(chalk.Cyan, "Path regexp:", pathRegexp)
  94.     //  }
  95.     //  queriesTemplates, err := route.GetQueriesTemplates()
  96.     //  if err == nil {
  97.     //      fmt.Println(chalk.Magenta, "Queries templates:", strings.Join(queriesTemplates, ","))
  98.     //  }
  99.     //  queriesRegexps, err := route.GetQueriesRegexp()
  100.     //  if err == nil {
  101.     //      fmt.Println(chalk.Blue, "Queries regexps:", strings.Join(queriesRegexps, ","))
  102.     //  }
  103.     //  methods, err := route.GetMethods()
  104.     //  if err == nil {
  105.     //      fmt.Println(chalk.White, "Methods:", strings.Join(methods, ","))
  106.     //  }
  107.     //  fmt.Println()
  108.     //  return nil
  109.     // })
  110.  
  111.     // if err != nil {
  112.     //  fmt.Println(err)
  113.     // }
  114.  
  115.     http.Handle("/", r)
  116.  
  117.     srv := &http.Server{
  118.         Handler:      r,
  119.         Addr:         "127.0.0.1:8000",
  120.         WriteTimeout: 15 * time.Second,
  121.         ReadTimeout:  15 * time.Second,
  122.     }
  123.  
  124.     log.Fatal(srv.ListenAndServe())
  125.  
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement