summaryrefslogtreecommitdiff
path: root/app/controllers
diff options
context:
space:
mode:
authorHorus32015-02-05 02:55:30 +0100
committerHorus32015-02-05 02:55:30 +0100
commitaf1f4677c685e8a2c4967ffa0350d314a6543db7 (patch)
tree7b749014441c732b75789eec4b93dc885f4a1f8f /app/controllers
downloadwebmon-af1f4677c685e8a2c4967ffa0350d314a6543db7.tar.gz
Init
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/app.go11
-rw-r--r--app/controllers/db.go43
-rw-r--r--app/controllers/url.go28
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
+}