Commit 643686ed authored by Ванин Дмитрий Михайлович's avatar Ванин Дмитрий Михайлович
Browse files

Initial commit

parents
No related merge requests found
Showing with 105 additions and 0 deletions
+105 -0
Readme.md 0 → 100644
# MySQL Rat microservice
| Переменные среды | Назначение |
|------------------|------------------------------------------------|
| DB_USER | Имя пользователя |
| DB_PASSWORD | Пароль для входа в MySQL |
| DB_NAME | Наименование базы данных |
\ No newline at end of file
go.mod 0 → 100644
module ms-rat
go 1.17
require github.com/go-sql-driver/mysql 1.6.0
\ No newline at end of file
rat-server.go 0 → 100644
package main
import (
"fmt"
"io"
"os"
"net/http"
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
func getInfo(w http.ResponseWriter, r *http.Request) {
db, err := sql.Open("mysql", os.Getenv("DB_USER") + ":" + os.Getenv("DB_PASSWORD") + "@/" + os.Getenv("DB_NAME"))
defer db.Close()
if err != nil {
log.Fatal(err)
}
res, err := db.Query("SELECT * FROM Den")
defer res.Close()
if err != nil {
log.Fatal(err)
}
for res.Next() {
var ratinfo inf
err := res.Scan(&inf.Id, &inf.Information)
if err != nil {
log.Fatal(err)
}
io.WriteString(w, inf + "\n")
}
}
func writeInfo(w http.ResponseWriter, r *http.Request) {
strings, ok := r.URL.Query()["string"]
if !ok || len(strings[0]) < 1 {
log.Fatal("Url Param 'string' is missing")
return
}
string := strings[0]
db, err := sql.Open("mysql", os.Getenv("DB_USER") + ":" + os.Getenv("DB_PASSWORD") + "@/" + os.Getenv("DB_NAME"))
defer db.Close()
if err != nil {
log.Fatal(err)
}
sql := "INSERT INTO Den(Information) VALUES (" + string + ")"
res, err := db.Exec(sql)
if err != nil {
panic(err.Error())
}
io.WriteString(w, "Written\n")
}
func whoiami(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "I'm the giant rat that makes all of the rules")
}
func main() {
db, err := sql.Open("mysql", os.Getenv("DB_USER") + ":" + os.Getenv("DB_PASSWORD") + "@/" + os.Getenv("DB_NAME"))
defer db.Close()
if err != nil {
log.Fatal(err)
}
sql := "CREATE TABLE [IF NOT EXISTS] Den(Id INT AUTO_INCREMENT PRIMARY KEY, Information VARCHAR(255) NOT NULL) ENGINE=INNODB;"
res, err := db.Exec(sql)
if err != nil {
log.Fatal(err)
}
http.HandleFunc("/", getInfo)
http.HandleFunc("/whoami", whoiami)
fmt.Printf("Try to start on port 8080")
if err := http.ListenAndServe(":8080", nil); err != nil {
fmt.Printf("An error: %s", err)
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment