|
@@ -0,0 +1,59 @@
|
|
|
+package main
|
|
|
+
|
|
|
+import (
|
|
|
+ "database/sql"
|
|
|
+ _ "github.com/go-sql-driver/mysql"
|
|
|
+ "encoding/json"
|
|
|
+ "fmt"
|
|
|
+ "github.com/gorilla/mux"
|
|
|
+ "net/http"
|
|
|
+)
|
|
|
+
|
|
|
+type API struct {
|
|
|
+ Message string "json:message"
|
|
|
+}
|
|
|
+
|
|
|
+type User struct {
|
|
|
+ ID int "json:id"
|
|
|
+ Name string "json:username"
|
|
|
+ Email string "json:email"
|
|
|
+ First string "json:first"
|
|
|
+ Last string "json:last"
|
|
|
+}
|
|
|
+
|
|
|
+var database *sql.DB
|
|
|
+func CreateUser(w http.ResponseWriter, r *http.Request) {
|
|
|
+ NewUser := User{}
|
|
|
+ NewUser.Name = r.FormValue("user")
|
|
|
+ NewUser.Email = r.FormValue("email")
|
|
|
+ NewUser.First = r.FormValue("first")
|
|
|
+ NewUser.Last = r.FormValue("last")
|
|
|
+ output, err := json.Marshal(NewUser)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Something went wrong with Marshal", err)
|
|
|
+ }
|
|
|
+ fmt.Println(string(output))
|
|
|
+
|
|
|
+ sql := "INSERT INTO users SET user_nickname='" + NewUser.Name + "'" + ", user_first = '" + NewUser.First + "'" + ", user_last = '" + NewUser.Last + "'" + ", user_email = '" + NewUser.Email + "';"
|
|
|
+ q, err := database.Exec(sql)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Something went wrong with INSERT", err)
|
|
|
+ }
|
|
|
+ last, err := q.LastInsertId()
|
|
|
+ affected, err := q.RowsAffected()
|
|
|
+ fmt.Printf("Last Id: %d, Affected rows: %d\n", last, affected)
|
|
|
+}
|
|
|
+
|
|
|
+func main() {
|
|
|
+ db, err := sql.Open("mysql", "goroot:gopass@/go_sn")
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Something went wrong with sql.Open", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ database = db
|
|
|
+
|
|
|
+ routes := mux.NewRouter()
|
|
|
+ routes.HandleFunc("/api/user/create", CreateUser).Methods("GET")
|
|
|
+ http.Handle("/", routes)
|
|
|
+ http.ListenAndServe(":8080", nil)
|
|
|
+}
|