/*
accetta un parametro da riga di comando
esegue la generazione fornendo un numero,un simbolo, una parola, un simbolo, un numero
*/

package main

import (
  "fmt"
  "os"
  "966.it/PasswordGenerator"
  "github.com/gin-gonic/gin"
  "net/http"
)

func main() {
  // se true, visualizza alcuni messaggi in Generator
  var verbose bool = false

  numerodiparametri := len(os.Args)
  
  if numerodiparametri != 3 {
    fmt.Printf("Numero di parametri errati\n")
    fmt.Printf("%s %s %s \n",os.Args[0],"Cartella_Termini","Porta")
    os.Exit(99)
  }
  
  elementidaleggere := os.Args[1]
  portadiascolto := fmt.Sprintf(":%s",os.Args[2])
 
  fmt.Printf("elementi leggere: %s\n",elementidaleggere)
  fmt.Printf("Porta in ascolto: %s\n",portadiascolto)

  r := gin.Default()
  r.LoadHTMLGlob("templates/*")
  r.GET("/", func(c *gin.Context) {
    c.HTML(http.StatusOK,"index.tmpl",gin.H{
      "Password1":mod.Run(elementidaleggere,verbose),
      "Password2":mod.Run(elementidaleggere,verbose),
      "Password3":mod.RunNumber(7,verbose),
      "Password4":mod.RunNumber(10,verbose),
    })
  })
  r.GET("/json", func(c *gin.Context) {
    c.JSON(http.StatusOK,gin.H{
      "Password1":mod.Run(elementidaleggere,verbose),
      "Password2":mod.Run(elementidaleggere,verbose),
      "Password3":mod.RunNumber(7,verbose),
      "Password4":mod.RunNumber(10,verbose),
    })
  })
  
  r.Run(portadiascolto)
  
}


