diff options
| author | Horus3 | 2015-02-05 02:55:30 +0100 |
|---|---|---|
| committer | Horus3 | 2015-02-05 02:55:30 +0100 |
| commit | af1f4677c685e8a2c4967ffa0350d314a6543db7 (patch) | |
| tree | 7b749014441c732b75789eec4b93dc885f4a1f8f /app/controllers | |
| download | webmon-af1f4677c685e8a2c4967ffa0350d314a6543db7.tar.gz | |
Init
Diffstat (limited to 'app/controllers')
| -rw-r--r-- | app/controllers/app.go | 11 | ||||
| -rw-r--r-- | app/controllers/db.go | 43 | ||||
| -rw-r--r-- | app/controllers/url.go | 28 |
3 files changed, 82 insertions, 0 deletions
diff --git a/app/controllers/app.go b/app/controllers/app.go new file mode 100644 index 0000000..e76d76b --- /dev/null +++ b/app/controllers/app.go @@ -0,0 +1,11 @@ +package controllers + +import "github.com/revel/revel" + +type App struct { + *revel.Controller +} + +func (c App) Index() revel.Result { + return c.Render() +} diff --git a/app/controllers/db.go b/app/controllers/db.go new file mode 100644 index 0000000..9607f24 --- /dev/null +++ b/app/controllers/db.go @@ -0,0 +1,43 @@ +package controllers + +import ( + "github.com/jinzhu/gorm" + _ "github.com/mattn/go-sqlite3" + "github.com/revel/revel" +) + +type User struct { + Id int64 + Email string + Name string + Password string +} + +type Job struct { +} + +var DB *gorm.DB + +func DBInit() *sql.DB { + // Open database handler + db, err := gorm.Open("sqlite3", "/tmp/gorm.db") + + // Ping database to check if up + if err = db.DB().Ping(); err != nil { + revel.ERROR.Panicf("Failed to init database. %s \n", err) + } + + // Set Pool connections + db.DB().SetMaxIdleConns(10) + db.DB().SetMaxOpenConns(100) + + // Create tables defined as struct + db.CreateTable(&User{}) + db.CreateTable(&Job{}) + + // Add index on email + db.Model(&User{}).AddIndex("idx_user_email", "email") + + // Make database handler public + DB = db +} diff --git a/app/controllers/url.go b/app/controllers/url.go new file mode 100644 index 0000000..516f6a6 --- /dev/null +++ b/app/controllers/url.go @@ -0,0 +1,28 @@ +package controllers + +import ( + "crypto/md5" + "fmt" + "io" + "io/ioutil" + "net/http" +) + +func HashUrl(url string) (string, error) { + response, err := http.Get(url) + if err != nil { + return "Get request failed.", err + } + + defer response.Body.Close() + contents, err := ioutil.ReadAll(response.Body) + if er != nil { + return "Reading body failed.", err + } + + h := md5.New() + io.WriteString(h, string(contents)) + hash := fmt.Sprintf("%x", h.Sum(nil)) + + return hash, nil +} |
