summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorraylu <raylu@mixpanel.com>2011-08-07 22:24:59 -0700
committerraylu <raylu@mixpanel.com>2011-08-07 22:29:20 -0700
commitab80133d57cfc355fe78fdb906fdef28b0231706 (patch)
tree744d779c9e2a739b4ca0bf9015a955214cf45f01
parentdf7d5852f8dc563ebb439a08dd0cdc0e3f2df6be (diff)
downloadaudioaxis-ab80133d57cfc355fe78fdb906fdef28b0231706.tar.xz
some db refactoring
-rw-r--r--db.go42
-rw-r--r--main.go33
2 files changed, 41 insertions, 34 deletions
diff --git a/db.go b/db.go
index 44b6011..8ded5ec 100644
--- a/db.go
+++ b/db.go
@@ -1,35 +1,63 @@
package main
import (
+ mysql "github.com/Philio/GoMySQL"
"os"
+ "log"
)
-func queryInt(sql string, params ...interface{}) (int, os.Error) {
+var db *mysql.Client
+
+func initDb() {
+ log.SetFlags(log.Ltime | log.Lshortfile)
+
+ var err os.Error
+ db, err = mysql.DialTCP("173.228.31.111", "audio", "audio", "audio")
+ if err != nil {
+ log.Panicln(err)
+ }
+ db.Reconnect = true
+}
+
+func prepare(sql string, params ...interface{}) (*mysql.Statement, os.Error) {
query, err := db.Prepare(sql)
if err != nil {
- return 0, err
+ log.Println(err)
+ return nil, err
}
err = query.BindParams(params...)
if err != nil {
- return 0, err
+ log.Println(err)
+ return nil, err
}
err = query.Execute()
if err != nil {
+ log.Println(err)
+ return nil, err
+ }
+ return query, err
+}
+
+func queryInt(sql string, params ...interface{}) (int, os.Error) {
+ query, err := prepare(sql, params...)
+ if err != nil {
return 0, err
}
var result int
query.BindResult(&result)
eof, err := query.Fetch()
if err != nil {
- return 0, err
+ log.Println(err)
+ return result, err
} else if eof {
- return 0, os.EOF
+ return result, os.EOF
}
err = query.FreeResult()
if err != nil {
- return 0, err
+ log.Println(err)
+ return result, err
}
- return result, nil
+ return result, err
}
// given an id ('abcd1234'), return the pid (1)
diff --git a/main.go b/main.go
index b10de22..6abaa13 100644
--- a/main.go
+++ b/main.go
@@ -4,7 +4,6 @@ import (
"fmt"
"http"
"exp/template"
- mysql "github.com/Philio/GoMySQL"
"os"
"json"
"strconv"
@@ -22,10 +21,9 @@ type Playlist struct {
var templates map[string]*template.Template
const debug = true
-var db *mysql.Client
func home(w http.ResponseWriter, r *http.Request) {
- fmt.Fprintf(w, "path is %s", r.URL.Path[1:])
+ fmt.Fprintf(w, "Welcome to Audio Axis!")
}
func playlist(w http.ResponseWriter, r *http.Request) {
@@ -171,21 +169,9 @@ func poll(w http.ResponseWriter, r *http.Request) {
q := r.URL.Query()
timestamp := q.Get("timestamp")
if timestamp == "0" {
- query, err := db.Prepare("SELECT `yid`,`title`,`user` FROM `playlist` JOIN `song` WHERE `id` = ? ORDER BY `order` ASC")
- if err != nil {
- http.Error(w, err.String(), http.StatusInternalServerError)
- return
- }
- err = query.BindParams(q.Get("pid"))
- if err != nil {
- http.Error(w, err.String(), http.StatusInternalServerError)
- return
- }
- err = query.Execute()
- if err != nil {
- http.Error(w, err.String(), http.StatusInternalServerError)
- return
- }
+ query, err := prepare(
+ "SELECT `yid`,`title`,`user` FROM `playlist` JOIN `song` WHERE `id` = ? ORDER BY `order` ASC",
+ q.Get("pid"))
updates := make([]Update, 0, 2)
for {
@@ -254,14 +240,7 @@ func main() {
templates[path] = t
}
- var err os.Error
- //db, err = mysql.DialTCP("raylu.net", "audio", "audio", "audio")
- db, err = mysql.DialTCP("173.228.31.111", "audio", "audio", "audio")
- if err != nil {
- fmt.Println(err)
- os.Exit(1)
- }
- db.Reconnect = true
+ initDb()
http.HandleFunc("/", home)
http.HandleFunc("/p/", playlist)
@@ -269,7 +248,7 @@ func main() {
http.HandleFunc("/remove/", remove)
http.HandleFunc("/move/", move)
http.HandleFunc("/poll/", poll)
- err = http.ListenAndServe("localhost:8000", nil)
+ err := http.ListenAndServe("localhost:8000", nil)
if err != nil {
fmt.Println(err)
os.Exit(1)