package main import ( "net/http" //"github.com/spf13/viper" shorty "github.com/kreativmonkey/shrt/short" "log" "fmt" ) const version = "0.01" const port = "9090" const db = "./test.db" var ( short *shorty.Storage ) func init() { var err error short, err = shorty.Open(db) if err != nil { panic(err) } /* viper.SetDefault("ContentDir", "content") viper.SetDefault("Token", map[string]string{"url": "url", "token": "token"}) viper.SetConfigName("config") // name of config file (without expression) viper.AddConfigPath("/etc/appname/") // path to look for the config file in viper.AddConfigPath("$HOME/.appname") // call multiple times to add many search paths viper.AddConfigPath(".") // optionally look for config in the working directory err = viper.ReadInConfig() // Find and read the config file if err != nil { // Handle errors reading the config file panic(fmt.Errorf("Fatal error config file: %s \n", err)) }*/ } type shrt struct { Token string `bson:"token" json:"token"` URL string `bson:"url" json:"url"` Date string `bson:"url_ending" json:"url_ending"` Count int64 `bson:"click" json:"click"` } func main() { http.HandleFunc("/", index) // render form for Input http.HandleFunc("/{token}", redirect) // request token for redirect URL http.HandleFunc("/shorten", shorten) // render Page for shorten URL http.HandleFunc("/all", all) // render all in a json http.HandleFunc("/api/action/shorten", shortenJSON) // setting router rule http.HandleFunc("/api/action/lookup", lookup) // setting router rule http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("template/css")))) http.Handle("/img/", http.StripPrefix("/img/", http.FileServer(http.Dir("template/img")))) err := http.ListenAndServe(":"+port, nil) // setting listening port if err != nil { log.Fatal("ListenAndServe: ", err) } fmt.Printf("Shrt %s started on Port: %s", version, port) }