unknown 4 lat temu
rodzic
commit
c241380903
2 zmienionych plików z 29 dodań i 43 usunięć
  1. 25 39
      main.go
  2. 4 4
      models.go

+ 25 - 39
main.go

@@ -10,20 +10,20 @@ import (
 	"html/template"
 	"image"
 	"image/png"
+	"io/ioutil"
 	"log"
+	"math/rand"
 	"net/http"
-	"io/ioutil"
 	"os"
 	"strings"
-	"math/rand"
 	"time"
 )
 
 func init() {
-    rand.Seed(time.Now().UnixNano())
+	rand.Seed(time.Now().UnixNano())
 }
 
-var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
+var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890")
 
 func main() {
 	port := os.Getenv("PORT")
@@ -40,15 +40,14 @@ func main() {
 	r.HandleFunc("/cartridges", CartridgePage)
 	fmt.Println("Server is listening...")
 
-
 	http.Handle("/", r)
-	http.ListenAndServe(":" + port, nil)
+	http.ListenAndServe(":"+port, nil)
 }
 
-func generateCompatible(w http.ResponseWriter, r *http.Request){
+func generateCompatible(w http.ResponseWriter, r *http.Request) {
 	fmt.Println("New generating request from" + r.RemoteAddr)
 	data, err := ioutil.ReadAll(r.Body)
-	if err != nil{
+	if err != nil {
 		fmt.Println("Something went wrong during generating QR code")
 		fmt.Fprintf(w, "Something went wrong during generating QR code")
 	}
@@ -56,37 +55,25 @@ func generateCompatible(w http.ResponseWriter, r *http.Request){
 	fmt.Println("Generated name " + filename + " for " + r.RemoteAddr)
 	generateFromText(string(data), filename)
 	fmt.Println("Generated file " + filename + ".png for " + r.RemoteAddr)
-	w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", filename +".png"))
+	w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", filename+".png"))
 	http.ServeFile(w, r, filename)
 	fmt.Println("Served file " + filename + ".png for " + r.RemoteAddr)
 	os.Remove(filename + ".png")
 	fmt.Println("Removed file " + filename + ".png")
 }
 
-func CartridgePage(w http.ResponseWriter, r *http.Request){
-	/*
-db.First(&user)
-
-user.Name = "jinzhu 2"
-user.Age = 100
-db.Save(&user)
-	*/
+func CartridgePage(w http.ResponseWriter, r *http.Request) {
 	db, err := gorm.Open(sqlite.Open("printer.db"), &gorm.Config{})
 	if err != nil {
 		fmt.Println("Error during opening DB")
 	} else {
-		for i := 1; i < 4; i++ {
-			var cartridge Cartridges
-			db.Where("id = ?", i).First(&cartridge)
-			cartridge.Quantity = 0
-			db.Save(&cartridge)
-		}
 
 		var cartridges []Cartridges
 		var names []string
 		db.Find(&cartridges)
-		for _, v := range cartridges{
-			name := v.Name + ": " + string(v.Quantity)
+		for _, v := range cartridges {
+			qua := fmt.Sprint(v.Quantity)
+			name := v.Name + ": " + qua
 			names = append(names, name)
 		}
 
@@ -119,7 +106,7 @@ func PrinterPage(w http.ResponseWriter, r *http.Request) {
 			db.Where("Printer_Id = ?", printer.ID).Find(&cot)
 			for _, v := range cot {
 				var cart Cartridges
-				if v.Printer_Id == printer.ID{
+				if v.Printer_Id == printer.ID {
 					db.Where("ID = ?", v.Cartridge_Id).First(&cart)
 					cartridges = append(cartridges, cart.Name)
 				}
@@ -233,24 +220,24 @@ func GenerateQR(w http.ResponseWriter, r *http.Request) {
 	GenerateFromWeb(w, r, text)
 }
 
-func GenerateFromWeb(w http.ResponseWriter, r *http.Request, printerName string){
+func GenerateFromWeb(w http.ResponseWriter, r *http.Request, printerName string) {
 	qrtext := "https://printers-ttit.herokuapp.com/printer/" + printerName // Генерация URL
 	fmt.Println("Generating QR code with text: " + qrtext + " for " + r.RemoteAddr)
 	filename := GenerateRandomString(10) // Генерация имени файла
 	fmt.Println("Generated filename " + filename + " for " + r.RemoteAddr)
 	err := generateFromText(qrtext, filename) // qrtext - текст в QR, filename - имя файла
 
-	if err != nil{
+	if err != nil {
 		fmt.Println(err)
 	}
 
 	fmt.Println("Setting header Content-Disposition for " + r.RemoteAddr)
-	w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", filename +".png"))
+	w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", filename+".png"))
 	fmt.Println("Starting serving file for " + r.RemoteAddr)
-	http.ServeFile(w, r, filename + ".png")
+	http.ServeFile(w, r, filename+".png")
 }
 
-func generateFromText(text string, filename string) error{
+func generateFromText(text string, filename string) error {
 	code, err := qr.Encode(text, qr.L, qr.Auto)
 	if err != nil {
 		return fmt.Errorf("Error during generating QR code")
@@ -264,13 +251,13 @@ func generateFromText(text string, filename string) error{
 	}
 
 	err = writePng(filename, code)
-	if err != nil{
+	if err != nil {
 		return err
 	}
 	return nil
 }
 
-func writePng(filename string, img image.Image) error{
+func writePng(filename string, img image.Image) error {
 	file, err := os.Create(filename + ".png")
 	if err != nil {
 		return fmt.Errorf("Creating file error")
@@ -284,11 +271,11 @@ func writePng(filename string, img image.Image) error{
 }
 
 func GenerateRandomString(n int) string {
-    b := make([]rune, n)
-    for i := range b {
-        b[i] = letterRunes[rand.Intn(len(letterRunes))]
-    }
-    return string(b)
+	b := make([]rune, n)
+	for i := range b {
+		b[i] = letterRunes[rand.Intn(len(letterRunes))]
+	}
+	return string(b)
 }
 
 func PrinterList(w http.ResponseWriter, r *http.Request) {
@@ -333,4 +320,3 @@ func cartridgeQR(text string, filename string) {
 
 	writePng(filename, code)
 }
-

+ 4 - 4
models.go

@@ -6,7 +6,7 @@ type ViewData struct {
 	CartridgeNames []string
 }
 
-type CartridgesOutput struct{
+type CartridgesOutput struct {
 	Name []string
 }
 
@@ -21,9 +21,9 @@ type Printers struct {
 }
 
 type Cartridges struct {
-	ID   uint   `gorm:"AUTO_INCREMENT;type:integer"`
-	Name string `gorm:"type:text"`
-	Quantity uint `gorm:"type:integer"`
+	ID       uint   `gorm:"AUTO_INCREMENT;type:integer"`
+	Name     string `gorm:"type:text"`
+	Quantity uint   `gorm:"type:integer"`
 }
 
 type Cartridgeofprinter struct {