| 
					
				 | 
			
			
				@@ -197,38 +197,51 @@ func AddPrinter(w http.ResponseWriter, r *http.Request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func GenerateQR(w http.ResponseWriter, r *http.Request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	r.ParseForm() // Получение имени принтера 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	qrtext := r.URL.Path + "/printer/" + strings.Join(r.Form["printer"], "") // Генерация URL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	fmt.Println("Generating QR code with text: " + qrtext + " for " + r.RemoteAddr) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	filename := GenerateRandomString(10) // Генерация имени файла 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	generateFromText(qrtext, filename) // qrtext - текст в QR, filename - имя файла 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	fmt.Println("Generated filename " + filename + " for " + r.RemoteAddr) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err := generateFromText(qrtext, filename) // qrtext - текст в QR, filename - имя файла 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fmt.Println(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	fmt.Println() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", filename +".png")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	http.ServeFile(w, r, filename) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-func generateFromText(text string, filename string) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func generateFromText(text string, filename string) error{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	code, err := qr.Encode(text, qr.L, qr.Auto) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		fmt.Println("Something went wrong...") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return fmt.Errorf("Error during generating QR code") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if text != code.Content() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		log.Fatal("data differs") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return fmt.Errorf("data differs") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	code, err = barcode.Scale(code, 512, 512) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		log.Fatal(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return fmt.Errorf("Error during scaling QR code") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	writePng(filename, code) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = writePng(filename, code) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-func writePng(filename string, img image.Image) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func writePng(filename string, img image.Image) error{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	file, err := os.Create(filename + ".png") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		log.Fatal(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return fmt.Errorf("Creating file error") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	err = png.Encode(file, img) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		log.Fatal(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return fmt.Errorf("PNG file error") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	file.Close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func GenerateRandomString(n int) string { 
			 |