Minor updates to db logic
diff --git a/api_test.go b/api_test.go
index 566897f..ee10d70 100644
--- a/api_test.go
+++ b/api_test.go
@@ -160,6 +160,7 @@
func insertTestData(db *sql.DB) {
for i := 0; i < 10; i++ {
+ var rows []common.Row
srvItems := common.Row{}
result := strconv.FormatInt(int64(i), 10)
@@ -192,11 +193,13 @@
Type: 1,
}
srvItems["tenant_id"] = scv
- res := insertAPIproduct(srvItems, db)
+ rows = append(rows, srvItems)
+ res := insertAPIproducts(rows, db)
Expect(res).Should(BeTrue())
}
for i := 0; i < 10; i++ {
+ var rows []common.Row
srvItems := common.Row{}
result := strconv.FormatInt(int64(i), 10)
@@ -242,7 +245,8 @@
}
srvItems["tenant_id"] = scv
- res := insertDeveloper(srvItems, db)
+ rows = append(rows, srvItems)
+ res := insertDevelopers(rows, db)
Expect(res).Should(BeTrue())
}
@@ -250,6 +254,7 @@
for i := 0; i < 10; i++ {
resulti := strconv.FormatInt(int64(i), 10)
for j = k; j < 10+k; j++ {
+ var rows []common.Row
srvItems := common.Row{}
resultj := strconv.FormatInt(int64(j), 10)
@@ -289,13 +294,15 @@
Type: 1,
}
srvItems["tenant_id"] = scv
- res := insertApplication(srvItems, db)
+ rows = append(rows, srvItems)
+ res := insertApplications(rows, db)
Expect(res).Should(BeTrue())
}
k = j
}
for i := 0; i < 10; i++ {
+ var rows []common.Row
srvItems := common.Row{}
result := strconv.FormatInt(int64(i), 10)
@@ -328,11 +335,13 @@
Type: 1,
}
srvItems["tenant_id"] = scv
- res := insertCredential(srvItems, db)
+ rows = append(rows, srvItems)
+ res := insertCredentials(rows, db)
Expect(res).Should(BeTrue())
}
for i := 0; i < 10; i++ {
+ var rows []common.Row
srvItems := common.Row{}
result := strconv.FormatInt(int64(i), 10)
@@ -369,7 +378,8 @@
Type: 1,
}
srvItems["tenant_id"] = scv
- res := insertAPIProductMapper(srvItems, db)
+ rows = append(rows, srvItems)
+ res := insertAPIProductMappers(rows, db)
Expect(res).Should(BeTrue())
}
diff --git a/listener.go b/listener.go
index 91eb2a2..6ac0999 100644
--- a/listener.go
+++ b/listener.go
@@ -13,8 +13,6 @@
return "verifyAPIKey"
}
-// todo: The following was basically just copied from old APID - needs review.
-
func (h *handler) Handle(e apid.Event) {
snapData, ok := e.(*common.Snapshot)
@@ -56,7 +54,7 @@
case "kms.api_product":
res = insertAPIproducts(payload.Rows, db)
case "kms.app_credential_apiproduct_mapper":
- res = insertApiProductMappers(payload.Rows, db)
+ res = insertAPIProductMappers(payload.Rows, db)
}
if res == false {
log.Error("Error encountered in Downloading Snapshot for VerifyApiKey")
@@ -269,7 +267,7 @@
/*
* Performs a bulk insert of all APP_CREDENTIAL_APIPRODUCT_MAPPER rows
*/
-func insertApiProductMappers(rows []common.Row, db *sql.DB) bool {
+func insertAPIProductMappers(rows []common.Row, db *sql.DB) bool {
var ApiProduct, AppId, EntityIdentifier, tenantId, Scope, Status string
@@ -333,6 +331,7 @@
func processChange(changes *common.ChangeList) {
log.Debugf("apigeeSyncEvent: %d changes", len(changes.Changes))
+ var rows []common.Row
db, err := data.DB()
if err != nil {
@@ -340,12 +339,13 @@
}
for _, payload := range changes.Changes {
-
+ rows = nil
switch payload.Table {
case "kms.developer":
switch payload.Operation {
case 1:
- insertDeveloper(payload.NewRow, db)
+ rows = append(rows, payload.NewRow)
+ insertDevelopers(rows, db)
case 2:
updateDeveloper(payload.NewRow, payload.OldRow, db)
case 3:
@@ -354,7 +354,8 @@
case "kms.app":
switch payload.Operation {
case 1:
- insertApplication(payload.NewRow, db)
+ rows = append(rows, payload.NewRow)
+ insertApplications(rows, db)
case 2:
updateApplication(payload.NewRow, payload.OldRow, db)
case 3:
@@ -364,7 +365,8 @@
case "kms.app_credential":
switch payload.Operation {
case 1:
- insertCredential(payload.NewRow, db)
+ rows = append(rows, payload.NewRow)
+ insertCredentials(rows, db)
case 2:
updateCredential(payload.NewRow, payload.OldRow, db)
case 3:
@@ -373,7 +375,8 @@
case "kms.api_product":
switch payload.Operation {
case 1:
- insertAPIproduct(payload.NewRow, db)
+ rows = append(rows, payload.NewRow)
+ insertAPIproducts(rows, db)
case 2:
updateAPIproduct(payload.NewRow, payload.OldRow, db)
case 3:
@@ -383,7 +386,8 @@
case "kms.app_credential_apiproduct_mapper":
switch payload.Operation {
case 1:
- insertAPIProductMapper(payload.NewRow, db)
+ rows = append(rows, payload.NewRow)
+ insertAPIProductMappers(rows, db)
case 2:
updateAPIproductMapper(payload.NewRow, payload.OldRow, db)
case 3:
@@ -394,235 +398,6 @@
}
/*
- * INSERT INTO APP_CREDENTIAL op
- */
-func insertCredential(ele common.Row, db *sql.DB) bool {
-
- var scope, id, appId, consumerSecret, appstatus, status, tenantId string
- var issuedAt int64
-
- ele.Get("_apid_scope", &scope)
- ele.Get("id", &id)
- ele.Get("app_id", &appId)
- ele.Get("consumer_secret", &consumerSecret)
- ele.Get("app_status", &appstatus)
- ele.Get("status", &status)
- ele.Get("issued_at", &issuedAt)
- ele.Get("tenant_id", &tenantId)
-
- stmt, 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);")
- if err != nil {
- log.Error("INSERT CRED Failed: ", id, ", ", scope, ")", err)
- return false
- }
- _, err = stmt.Exec(
- scope,
- id,
- appId,
- consumerSecret,
- appstatus,
- status,
- issuedAt,
- tenantId)
-
- if err != nil {
- log.Error("INSERT CRED Failed: ", id, ", ", scope, ")", err)
- return false
- } else {
- log.Info("INSERT CRED Success: (", id, ", ", scope, ")")
- return true
- }
-
-}
-
-func insertAPIProductMapper(ele common.Row, db *sql.DB) bool {
-
- var ApiProduct, AppId, EntityIdentifier, tenantId, Scope, Status string
-
- ele.Get("apiprdt_id", &ApiProduct)
- ele.Get("app_id", &AppId)
- ele.Get("appcred_id", &EntityIdentifier)
- ele.Get("tenant_id", &tenantId)
- ele.Get("_apid_scope", &Scope)
- ele.Get("status", &Status)
-
- /*
- * If the credentials has been successfully inserted, insert the
- * mapping entries associated with the credential
- */
-
- stmt, 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);")
- if err != nil {
- log.Error("INSERT APP_CREDENTIAL_APIPRODUCT_MAPPER Failed: ", err)
- return false
- }
- _, err = stmt.Exec(
- ApiProduct,
- AppId,
- EntityIdentifier,
- tenantId,
- Scope,
- Status)
-
- if err != nil {
- log.Error("INSERT APP_CREDENTIAL_APIPRODUCT_MAPPER Failed: (",
- ApiProduct, ", ",
- AppId, ", ",
- EntityIdentifier, ", ",
- tenantId, ", ",
- Scope, ", ",
- Status,
- ")",
- err)
- return false
- } else {
- log.Info("INSERT APP_CREDENTIAL_APIPRODUCT_MAPPER Success: (",
- ApiProduct, ", ",
- AppId, ", ",
- EntityIdentifier, ", ",
- tenantId, ", ",
- Scope, ", ",
- Status,
- ")")
- return true
- }
-}
-
-/*
- * INSERT INTO API product op
- */
-func insertAPIproduct(ele common.Row, db *sql.DB) bool {
-
- var scope, apiProduct, res, env, tenantId string
-
- ele.Get("_apid_scope", &scope)
- ele.Get("id", &apiProduct)
- ele.Get("api_resources", &res)
- ele.Get("environments", &env)
- ele.Get("tenant_id", &tenantId)
-
- stmt, err := db.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
- }
- _, err = stmt.Exec(
- apiProduct,
- res,
- env,
- tenantId,
- scope)
-
- if err != nil {
- log.Error("INSERT API_PRODUCT Failed: (", apiProduct, ", ", tenantId, ")", err)
- return false
- } else {
- log.Info("INSERT API_PRODUCT Success: (", apiProduct, ", ", tenantId, ")")
- return true
- }
-
-}
-
-/*
- * INSERT INTO APP op
- */
-func insertApplication(ele common.Row, db *sql.DB) bool {
-
- var scope, EntityIdentifier, DeveloperId, CallbackUrl, Status, AppName, AppFamily, tenantId, CreatedBy, LastModifiedBy string
- var CreatedAt, LastModifiedAt int64
-
- ele.Get("_apid_scope", &scope)
- ele.Get("id", &EntityIdentifier)
- ele.Get("developer_id", &DeveloperId)
- ele.Get("callback_url", &CallbackUrl)
- ele.Get("status", &Status)
- ele.Get("name", &AppName)
- ele.Get("app_family", &AppFamily)
- ele.Get("created_at", &CreatedAt)
- ele.Get("created_by", &CreatedBy)
- ele.Get("updated_at", &LastModifiedAt)
- ele.Get("updated_by", &LastModifiedBy)
- ele.Get("tenant_id", &tenantId)
-
- stmt, 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);")
- if err != nil {
- log.Error("INSERT APP Failed: ", err)
- return false
- }
- _, err = stmt.Exec(
- scope,
- EntityIdentifier,
- DeveloperId,
- CallbackUrl,
- Status,
- AppName,
- AppFamily,
- CreatedAt,
- CreatedBy,
- LastModifiedAt,
- LastModifiedBy,
- tenantId)
-
- if err != nil {
- log.Error("INSERT APP Failed: (", EntityIdentifier, ", ", tenantId, ")", err)
- return false
- } else {
- log.Info("INSERT APP Success: (", EntityIdentifier, ", ", tenantId, ")")
- return true
- }
-
-}
-
-/*
- * INSERT INTO DEVELOPER op
- */
-func insertDeveloper(ele common.Row, db *sql.DB) bool {
- var scope, EntityIdentifier, Email, Status, UserName, FirstName, LastName, tenantId, CreatedBy, LastModifiedBy, Username string
- var CreatedAt, LastModifiedAt int64
-
- ele.Get("_apid_scope", &scope)
- ele.Get("email", &Email)
- ele.Get("id", &EntityIdentifier)
- ele.Get("tenant_id", &tenantId)
- ele.Get("status", &Status)
- ele.Get("username", &Username)
- ele.Get("first_name", &FirstName)
- ele.Get("last_name", &LastName)
- ele.Get("created_at", &CreatedAt)
- ele.Get("created_by", &CreatedBy)
- ele.Get("updated_at", &LastModifiedAt)
- ele.Get("updated_by", &LastModifiedBy)
-
- stmt, 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);")
- if err != nil {
- log.Error("INSERT DEVELOPER Failed: ", err)
- return false
- }
-
- _, err = stmt.Exec(
- scope,
- Email,
- EntityIdentifier,
- tenantId,
- Status,
- UserName,
- FirstName,
- LastName,
- CreatedAt,
- CreatedBy,
- LastModifiedAt,
- LastModifiedBy)
-
- if err != nil {
- log.Error("INSERT DEVELOPER Failed: (", EntityIdentifier, ", ", scope, ")", err)
- return false
- } else {
- log.Info("INSERT DEVELOPER Success: (", EntityIdentifier, ", ", scope, ")")
- return true
- }
-}
-
-/*
* DELETE APP
*/
func deleteApplication(ele common.Row, db *sql.DB) bool {