diff --git a/database.go b/database.go index 36c4ab8..31a2aea 100644 --- a/database.go +++ b/database.go @@ -15,7 +15,8 @@ import ( ) type Database struct { - sqlDB *sql.DB + sqlDB *sql.DB + trackingStmt *sql.Stmt } func initDatabase() (database *Database, e error) { @@ -28,6 +29,10 @@ func initDatabase() (database *Database, e error) { return } e = migrateDatabase(database.sqlDB) + database.trackingStmt, e = database.sqlDB.Prepare("insert into views(url, ref, useragent) values(:url, :ref, :ua)") + if e != nil { + return + } return } @@ -56,7 +61,7 @@ func (db *Database) trackView(urlString string, ref string, ua string) { uaName, uaVersion := user_agent.New(ua).Browser() ua = uaName + " " + uaVersion } - _, e := db.sqlDB.Exec("insert into views(url, ref, useragent) values(:url, :ref, :ua)", sql.Named("url", urlString), sql.Named("ref", ref), sql.Named("ua", ua)) + _, e := db.trackingStmt.Exec(sql.Named("url", urlString), sql.Named("ref", ref), sql.Named("ua", ua)) if e != nil { fmt.Println("Inserting into DB failed:", e) } diff --git a/go.mod b/go.mod index 22ded9c..ab2d213 100644 --- a/go.mod +++ b/go.mod @@ -8,14 +8,14 @@ require ( github.com/gobuffalo/packr/v2 v2.2.0 github.com/google/uuid v1.1.1 // indirect github.com/gorilla/handlers v1.4.0 - github.com/gorilla/mux v1.7.1 + github.com/gorilla/mux v1.7.2 github.com/jordan-wright/email v0.0.0-20190218024454-3ea4d25e7cf8 - github.com/lib/pq v1.1.0 // indirect - github.com/mattn/go-sqlite3 v0.0.0-20190424093727-5994cc52dfa8 + github.com/lib/pq v1.1.1 // indirect + github.com/mattn/go-sqlite3 v1.10.1-0.20190510164106-2a192bf78237 github.com/mssola/user_agent v0.5.0 github.com/rubenv/sql-migrate v0.0.0-20190327083759-54bad0a9b051 github.com/whiteshtef/clockwork v0.0.0-20190417075149-ecf7d9abe8ec github.com/ziutek/mymysql v1.5.4 // indirect - google.golang.org/appengine v1.5.0 // indirect + google.golang.org/appengine v1.6.0 // indirect gopkg.in/gorp.v1 v1.7.2 // indirect ) diff --git a/go.sum b/go.sum index d3e23f6..afae244 100644 --- a/go.sum +++ b/go.sum @@ -27,7 +27,8 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/handlers v1.4.0/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= -github.com/gorilla/mux v1.7.1/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.2 h1:zoNxOV7WjqXptQOVngLmcSQgXmgk4NMz1HibBchjl/I= +github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jordan-wright/email v0.0.0-20190218024454-3ea4d25e7cf8 h1:XMe1IsRiRx3E3M50BhP7327VYF4A9RpCFfhHUFW+IeE= @@ -37,12 +38,11 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxv github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/lib/pq v1.1.0 h1:/5u4a+KGJptBRqGzPvYQL9p0d/tPR4S31+Tnzj9lEO4= -github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= -github.com/mattn/go-sqlite3 v0.0.0-20190424093727-5994cc52dfa8 h1:ifqWo3p9CO7W4BYU07I43lm6OV+POAiiu3gwW3YwhEc= -github.com/mattn/go-sqlite3 v0.0.0-20190424093727-5994cc52dfa8/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-sqlite3 v1.10.1-0.20190510164106-2a192bf78237 h1:Dx4p8y/5WXRNfhU7rJMY//wekX5JZwOA60Ul/5tkPvo= +github.com/mattn/go-sqlite3 v1.10.1-0.20190510164106-2a192bf78237/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mssola/user_agent v0.5.0/go.mod h1:UFiKPVaShrJGW93n4uo8dpPdg1BSVpw2P9bneo0Mtp8= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -76,7 +76,8 @@ golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190404132500-923d25813098/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421 h1:0lteSdckF24NlQCFAMS8BzXQy45S0v4SY3N3BBkq/gA= golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.0 h1:Tfd7cKwKbFRsI8RMAD3oqqw7JPFRrvFlOsfbgVkjOOw= +google.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/gorp.v1 v1.7.2/go.mod h1:Wo3h+DBQZIxATwftsglhdD/62zRFPhGhTiu5jUJmCaw=