From 28b7a0a7060416367624171b4d76b451dd3c836c Mon Sep 17 00:00:00 2001
From: Christian Pointner <equinox@helsinki.at>
Date: Mon, 28 Dec 2015 17:10:06 +0100
Subject: refactoring of rddb, seperate public from private interface


diff --git a/src/helsinki.at/rhimport/rddb.go b/src/helsinki.at/rhimport/rddb.go
index ead1ac0..8bec3c0 100644
--- a/src/helsinki.at/rhimport/rddb.go
+++ b/src/helsinki.at/rhimport/rddb.go
@@ -97,14 +97,6 @@ type getMusicInfoRequest struct {
 	response chan<- getMusicInfoResult
 }
 
-type RdDbChan struct {
-	getPasswordChan     chan<- getPasswordRequest
-	getGroupOfCartChan  chan<- getGroupOfCartRequest
-	getShowInfoChan     chan<- getShowInfoRequest
-	checkMusicGroupChan chan<- checkMusicGroupRequest
-	getMusicInfoChan    chan<- getMusicInfoRequest
-}
-
 type RdDb struct {
 	dbh                 *sql.DB
 	password_cache      map[string]string
@@ -177,48 +169,6 @@ func (self *RdDb) getPassword(username string, cached bool) (result getPasswordR
 	return
 }
 
-func (self *RdDbChan) GetPassword(username string, cached bool) (string, error) {
-	res_ch := make(chan getPasswordResult)
-	req := getPasswordRequest{}
-	req.username = username
-	req.cached = cached
-	req.response = res_ch
-	self.getPasswordChan <- req
-
-	res := <-res_ch
-	if res.err != nil {
-		return "", res.err
-	}
-	return res.password, nil
-}
-
-func (self *RdDbChan) CheckPassword(username, password string) (bool, error) {
-	cached := true
-
-	for {
-		res_ch := make(chan getPasswordResult)
-		req := getPasswordRequest{}
-		req.username = username
-		req.cached = cached
-		req.response = res_ch
-		self.getPasswordChan <- req
-
-		res := <-res_ch
-		if res.err != nil {
-			return false, res.err
-		}
-		if password == res.password {
-			return true, nil
-		}
-		if cached {
-			cached = false
-		} else {
-			break
-		}
-	}
-	return false, nil
-}
-
 func (self *RdDb) getGroupOfCart(cart uint) (result getGroupOfCartResult) {
 	var rows *sql.Rows
 	if rows, result.err = self.getGroupOfCartStmt.Query(cart, cart); result.err != nil {
@@ -249,20 +199,6 @@ func (self *RdDb) getGroupOfCart(cart uint) (result getGroupOfCartResult) {
 	return
 }
 
-func (self *RdDbChan) GetGroupOfCart(cart uint) (string, error) {
-	res_ch := make(chan getGroupOfCartResult)
-	req := getGroupOfCartRequest{}
-	req.cart = cart
-	req.response = res_ch
-	self.getGroupOfCartChan <- req
-
-	res := <-res_ch
-	if res.err != nil {
-		return "", res.err
-	}
-	return res.group, nil
-}
-
 func (self *RdDb) getLogTableName(log string) (logtable string, err error) {
 	logtable = strings.Replace(log, " ", "_", -1) + "_LOG"
 	if !mysqlTableNameRe.MatchString(logtable) {
@@ -309,20 +245,6 @@ func (self *RdDb) getShowInfo(showid uint) (result getShowInfoResult) {
 	return
 }
 
-func (self *RdDbChan) GetShowInfo(showid uint) (string, int, int, []uint, error) {
-	res_ch := make(chan getShowInfoResult)
-	req := getShowInfoRequest{}
-	req.showid = showid
-	req.response = res_ch
-	self.getShowInfoChan <- req
-
-	res := <-res_ch
-	if res.err != nil {
-		return "", 0, 0, nil, res.err
-	}
-	return res.group, res.norm_lvl, res.trim_lvl, res.carts, nil
-}
-
 func (self *RdDb) checkMusicGroup(group string) (result checkMusicGroupResult) {
 	var cnt int
 	if result.err = self.checkMusicGroupStmt.QueryRow(group).Scan(&cnt); result.err != nil {
@@ -336,20 +258,6 @@ func (self *RdDb) checkMusicGroup(group string) (result checkMusicGroupResult) {
 	return
 }
 
-func (self *RdDbChan) CheckMusicGroup(groupname string) (bool, error) {
-	res_ch := make(chan checkMusicGroupResult)
-	req := checkMusicGroupRequest{}
-	req.group = groupname
-	req.response = res_ch
-	self.checkMusicGroupChan <- req
-
-	res := <-res_ch
-	if res.err != nil {
-		return false, res.err
-	}
-	return res.ismusic, nil
-}
-
 func (self *RdDb) getMusicInfo(group string) (result getMusicInfoResult) {
 	result.err = self.getMusicInfoStmt.QueryRow(group).Scan(&result.norm_lvl, &result.trim_lvl)
 	if result.err != nil {
@@ -361,20 +269,6 @@ func (self *RdDb) getMusicInfo(group string) (result getMusicInfoResult) {
 	return
 }
 
-func (self *RdDbChan) GetMusicInfo(groupname string) (int, int, error) {
-	res_ch := make(chan getMusicInfoResult)
-	req := getMusicInfoRequest{}
-	req.group = groupname
-	req.response = res_ch
-	self.getMusicInfoChan <- req
-
-	res := <-res_ch
-	if res.err != nil {
-		return 0, 0, res.err
-	}
-	return res.norm_lvl, res.trim_lvl, nil
-}
-
 func (self *RdDb) dispatchRequests() {
 	defer func() { self.done <- true }()
 	for {
@@ -395,6 +289,115 @@ func (self *RdDb) dispatchRequests() {
 	}
 }
 
+// *********************************************************
+// Public Interface
+
+type RdDbChan struct {
+	getPasswordChan     chan<- getPasswordRequest
+	getGroupOfCartChan  chan<- getGroupOfCartRequest
+	getShowInfoChan     chan<- getShowInfoRequest
+	checkMusicGroupChan chan<- checkMusicGroupRequest
+	getMusicInfoChan    chan<- getMusicInfoRequest
+}
+
+func (self *RdDbChan) GetPassword(username string, cached bool) (string, error) {
+	res_ch := make(chan getPasswordResult)
+	req := getPasswordRequest{}
+	req.username = username
+	req.cached = cached
+	req.response = res_ch
+	self.getPasswordChan <- req
+
+	res := <-res_ch
+	if res.err != nil {
+		return "", res.err
+	}
+	return res.password, nil
+}
+
+func (self *RdDbChan) CheckPassword(username, password string) (bool, error) {
+	cached := true
+
+	for {
+		res_ch := make(chan getPasswordResult)
+		req := getPasswordRequest{}
+		req.username = username
+		req.cached = cached
+		req.response = res_ch
+		self.getPasswordChan <- req
+
+		res := <-res_ch
+		if res.err != nil {
+			return false, res.err
+		}
+		if password == res.password {
+			return true, nil
+		}
+		if cached {
+			cached = false
+		} else {
+			break
+		}
+	}
+	return false, nil
+}
+
+func (self *RdDbChan) GetGroupOfCart(cart uint) (string, error) {
+	res_ch := make(chan getGroupOfCartResult)
+	req := getGroupOfCartRequest{}
+	req.cart = cart
+	req.response = res_ch
+	self.getGroupOfCartChan <- req
+
+	res := <-res_ch
+	if res.err != nil {
+		return "", res.err
+	}
+	return res.group, nil
+}
+
+func (self *RdDbChan) GetShowInfo(showid uint) (string, int, int, []uint, error) {
+	res_ch := make(chan getShowInfoResult)
+	req := getShowInfoRequest{}
+	req.showid = showid
+	req.response = res_ch
+	self.getShowInfoChan <- req
+
+	res := <-res_ch
+	if res.err != nil {
+		return "", 0, 0, nil, res.err
+	}
+	return res.group, res.norm_lvl, res.trim_lvl, res.carts, nil
+}
+
+func (self *RdDbChan) CheckMusicGroup(groupname string) (bool, error) {
+	res_ch := make(chan checkMusicGroupResult)
+	req := checkMusicGroupRequest{}
+	req.group = groupname
+	req.response = res_ch
+	self.checkMusicGroupChan <- req
+
+	res := <-res_ch
+	if res.err != nil {
+		return false, res.err
+	}
+	return res.ismusic, nil
+}
+
+func (self *RdDbChan) GetMusicInfo(groupname string) (int, int, error) {
+	res_ch := make(chan getMusicInfoResult)
+	req := getMusicInfoRequest{}
+	req.group = groupname
+	req.response = res_ch
+	self.getMusicInfoChan <- req
+
+	res := <-res_ch
+	if res.err != nil {
+		return 0, 0, res.err
+	}
+	return res.norm_lvl, res.trim_lvl, nil
+}
+
 func (self *RdDb) GetInterface() *RdDbChan {
 	ch := &RdDbChan{}
 	ch.getPasswordChan = self.getPasswordChan
-- 
cgit v0.10.2