db.Prepare -> txn.Prepare to avoid needing extra transaction
diff --git a/listener.go b/listener.go
index 2aafd5b..9908f8d 100644
--- a/listener.go
+++ b/listener.go
@@ -29,11 +29,11 @@
snapData, ok := e.(*common.Snapshot)
if ok {
- res = processSnapshot(snapData, db, txn)
+ res = processSnapshot(snapData, txn)
} else {
changeSet, ok := e.(*common.ChangeList)
if ok {
- res = processChange(changeSet, db, txn)
+ res = processChange(changeSet, txn)
} else {
log.Errorf("Received Invalid event. This shouldn't happen!")
}
@@ -46,7 +46,7 @@
return
}
-func processSnapshot(snapshot *common.Snapshot, db *sql.DB, txn *sql.Tx) bool {
+func processSnapshot(snapshot *common.Snapshot, txn *sql.Tx) bool {
res := true
log.Debugf("Process Snapshot data")
@@ -57,15 +57,15 @@
for _, payload := range snapshot.Tables {
switch payload.Name {
case "kms.developer":
- res = insertDevelopers(payload.Rows, db, txn)
+ res = insertDevelopers(payload.Rows, txn)
case "kms.app":
- res = insertApplications(payload.Rows, db, txn)
+ res = insertApplications(payload.Rows, txn)
case "kms.app_credential":
- res = insertCredentials(payload.Rows, db, txn)
+ res = insertCredentials(payload.Rows, txn)
case "kms.api_product":
- res = insertAPIproducts(payload.Rows, db, txn)
+ res = insertAPIproducts(payload.Rows, txn)
case "kms.app_credential_apiproduct_mapper":
- res = insertAPIProductMappers(payload.Rows, db, txn)
+ res = insertAPIProductMappers(payload.Rows, txn)
}
if res == false {
log.Error("Error encountered in Downloading Snapshot for VerifyApiKey")
@@ -79,12 +79,12 @@
/*
* Performs bulk insert of credentials
*/
-func insertCredentials(rows []common.Row, db *sql.DB, txn *sql.Tx) bool {
+func insertCredentials(rows []common.Row, txn *sql.Tx) bool {
var scope, id, appId, consumerSecret, appstatus, status, tenantId string
var issuedAt int64
- prep, err := db.Prepare("INSERT INTO APP_CREDENTIAL (_apid_scope, id, app_id, consumer_secret, app_status, status, issued_at, tenant_id)VALUES($1,$2,$3,$4,$5,$6,$7,$8);")
+ prep, err := txn.Prepare("INSERT INTO APP_CREDENTIAL (_apid_scope, id, app_id, consumer_secret, app_status, status, issued_at, tenant_id)VALUES($1,$2,$3,$4,$5,$6,$7,$8);")
if err != nil {
log.Error("INSERT Cred Failed: ", err)
return false
@@ -122,12 +122,12 @@
/*
* Performs Bulk insert of Applications
*/
-func insertApplications(rows []common.Row, db *sql.DB, txn *sql.Tx) bool {
+func insertApplications(rows []common.Row, txn *sql.Tx) bool {
var scope, EntityIdentifier, DeveloperId, CallbackUrl, Status, AppName, AppFamily, tenantId, CreatedBy, LastModifiedBy string
var CreatedAt, LastModifiedAt int64
- prep, err := db.Prepare("INSERT INTO APP (_apid_scope, id, developer_id,callback_url,status, name, app_family, created_at, created_by,updated_at, updated_by,tenant_id) VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12);")
+ prep, err := txn.Prepare("INSERT INTO APP (_apid_scope, id, developer_id,callback_url,status, name, app_family, created_at, created_by,updated_at, updated_by,tenant_id) VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12);")
if err != nil {
log.Error("INSERT APP Failed: ", err)
return false
@@ -177,12 +177,12 @@
/*
* Performs bulk insert of Developers
*/
-func insertDevelopers(rows []common.Row, db *sql.DB, txn *sql.Tx) bool {
+func insertDevelopers(rows []common.Row, txn *sql.Tx) bool {
var scope, EntityIdentifier, Email, Status, UserName, FirstName, LastName, tenantId, CreatedBy, LastModifiedBy, Username string
var CreatedAt, LastModifiedAt int64
- prep, err := db.Prepare("INSERT INTO DEVELOPER (_apid_scope,email,id,tenant_id,status,username,first_name,last_name,created_at,created_by,updated_at,updated_by) VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12);")
+ prep, err := txn.Prepare("INSERT INTO DEVELOPER (_apid_scope,email,id,tenant_id,status,username,first_name,last_name,created_at,created_by,updated_at,updated_by) VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12);")
if err != nil {
log.Error("INSERT DEVELOPER Failed: ", err)
return false
@@ -231,11 +231,11 @@
/*
* Performs Bulk insert of API products
*/
-func insertAPIproducts(rows []common.Row, db *sql.DB, txn *sql.Tx) bool {
+func insertAPIproducts(rows []common.Row, txn *sql.Tx) bool {
var scope, apiProduct, res, env, tenantId string
- prep, err := db.Prepare("INSERT INTO API_PRODUCT (id, api_resources, environments, tenant_id,_apid_scope) VALUES($1,$2,$3,$4,$5)")
+ prep, err := txn.Prepare("INSERT INTO API_PRODUCT (id, api_resources, environments, tenant_id,_apid_scope) VALUES($1,$2,$3,$4,$5)")
if err != nil {
log.Error("INSERT API_PRODUCT Failed: ", err)
return false
@@ -270,11 +270,11 @@
/*
* Performs a bulk insert of all APP_CREDENTIAL_APIPRODUCT_MAPPER rows
*/
-func insertAPIProductMappers(rows []common.Row, db *sql.DB, txn *sql.Tx) bool {
+func insertAPIProductMappers(rows []common.Row, txn *sql.Tx) bool {
var ApiProduct, AppId, EntityIdentifier, tenantId, Scope, Status string
- prep, err := db.Prepare("INSERT INTO APP_CREDENTIAL_APIPRODUCT_MAPPER(apiprdt_id, app_id, appcred_id, tenant_id, _apid_scope, status) VALUES($1,$2,$3,$4,$5,$6);")
+ prep, err := txn.Prepare("INSERT INTO APP_CREDENTIAL_APIPRODUCT_MAPPER(apiprdt_id, app_id, appcred_id, tenant_id, _apid_scope, status) VALUES($1,$2,$3,$4,$5,$6);")
if err != nil {
log.Error("INSERT APP_CREDENTIAL_APIPRODUCT_MAPPER Failed: ", err)
return false
@@ -329,7 +329,7 @@
return true
}
-func processChange(changes *common.ChangeList, db *sql.DB, txn *sql.Tx) bool {
+func processChange(changes *common.ChangeList, txn *sql.Tx) bool {
var rows []common.Row
res := true
@@ -342,73 +342,73 @@
switch payload.Operation {
case common.Insert:
rows = append(rows, payload.NewRow)
- res = insertDevelopers(rows, db, txn)
+ res = insertDevelopers(rows, txn)
case common.Update:
- res = deleteObject("DEVELOPER", payload.OldRow, db, txn)
+ res = deleteObject("DEVELOPER", payload.OldRow, txn)
rows = append(rows, payload.NewRow)
- res = insertDevelopers(rows, db, txn)
+ res = insertDevelopers(rows, txn)
case common.Delete:
- res = deleteObject("DEVELOPER", payload.OldRow, db, txn)
+ res = deleteObject("DEVELOPER", payload.OldRow, txn)
}
case "kms.app":
switch payload.Operation {
case common.Insert:
rows = append(rows, payload.NewRow)
- res = insertApplications(rows, db, txn)
+ res = insertApplications(rows, txn)
case common.Update:
- res = deleteObject("APP", payload.OldRow, db, txn)
+ res = deleteObject("APP", payload.OldRow, txn)
rows = append(rows, payload.NewRow)
- res = insertApplications(rows, db, txn)
+ res = insertApplications(rows, txn)
case common.Delete:
- res = deleteObject("APP", payload.OldRow, db, txn)
+ res = deleteObject("APP", payload.OldRow, txn)
}
case "kms.app_credential":
switch payload.Operation {
case common.Insert:
rows = append(rows, payload.NewRow)
- res = insertCredentials(rows, db, txn)
+ res = insertCredentials(rows, txn)
case common.Update:
- res = deleteObject("APP_CREDENTIAL", payload.OldRow, db, txn)
+ res = deleteObject("APP_CREDENTIAL", payload.OldRow, txn)
rows = append(rows, payload.NewRow)
- res = insertCredentials(rows, db, txn)
+ res = insertCredentials(rows, txn)
case common.Delete:
- res = deleteObject("APP_CREDENTIAL", payload.OldRow, db, txn)
+ res = deleteObject("APP_CREDENTIAL", payload.OldRow, txn)
}
case "kms.api_product":
switch payload.Operation {
case common.Insert:
rows = append(rows, payload.NewRow)
- res = insertAPIproducts(rows, db, txn)
+ res = insertAPIproducts(rows, txn)
case common.Update:
- res = deleteObject("API_PRODUCT", payload.OldRow, db, txn)
+ res = deleteObject("API_PRODUCT", payload.OldRow, txn)
rows = append(rows, payload.NewRow)
- res = insertAPIproducts(rows, db, txn)
+ res = insertAPIproducts(rows, txn)
case common.Delete:
- res = deleteObject("API_PRODUCT", payload.OldRow, db, txn)
+ res = deleteObject("API_PRODUCT", payload.OldRow, txn)
}
case "kms.app_credential_apiproduct_mapper":
switch payload.Operation {
case common.Insert:
rows = append(rows, payload.NewRow)
- res = insertAPIProductMappers(rows, db, txn)
+ res = insertAPIProductMappers(rows, txn)
case common.Update:
- res = deleteAPIproductMapper(payload.OldRow, db, txn)
+ res = deleteAPIproductMapper(payload.OldRow, txn)
rows = append(rows, payload.NewRow)
- res = insertAPIProductMappers(rows, db, txn)
+ res = insertAPIProductMappers(rows, txn)
case common.Delete:
- res = deleteAPIproductMapper(payload.OldRow, db, txn)
+ res = deleteAPIproductMapper(payload.OldRow, txn)
}
}
if res == false {
@@ -422,11 +422,11 @@
/*
* DELETE OBJECT as passed in the input
*/
-func deleteObject(object string, ele common.Row, db *sql.DB, txn *sql.Tx) bool {
+func deleteObject(object string, ele common.Row, txn *sql.Tx) bool {
var scope, apiProduct string
ssql := "DELETE FROM " + object + " WHERE id = $1 AND _apid_scope = $2"
- prep, err := db.Prepare(ssql)
+ prep, err := txn.Prepare(ssql)
if err != nil {
log.Error("DELETE ", object, " Failed: ", err)
return false
@@ -449,10 +449,10 @@
/*
* DELETE APIPRDT MAPPER
*/
-func deleteAPIproductMapper(ele common.Row, db *sql.DB, txn *sql.Tx) bool {
+func deleteAPIproductMapper(ele common.Row, txn *sql.Tx) bool {
var ApiProduct, AppId, EntityIdentifier, apid_scope string
- prep, err := db.Prepare("DELETE FROM APP_CREDENTIAL_APIPRODUCT_MAPPER WHERE apiprdt_id=$1 AND app_id=$2 AND appcred_id=$3 AND _apid_scope=$4;")
+ prep, err := txn.Prepare("DELETE FROM APP_CREDENTIAL_APIPRODUCT_MAPPER WHERE apiprdt_id=$1 AND app_id=$2 AND appcred_id=$3 AND _apid_scope=$4;")
if err != nil {
log.Error("DELETE APP_CREDENTIAL_APIPRODUCT_MAPPER Failed: ", err)
return false