Use Prepare/Exec for SQL inserts
diff --git a/listener.go b/listener.go index 6c025c7..2152bea 100644 --- a/listener.go +++ b/listener.go
@@ -116,22 +116,26 @@ /* * INSERT INTO APP_CREDENTIAL op */ -func insertCreateCredential(ele common.Row, db *sql.DB) { +func insertCreateCredential(ele common.Row, db *sql.DB) bool { var scope, id, appId, consumerSecret, appstatus, status, tenantId string var issuedAt int64 - txn, _ := db.Begin() - err := ele.Get("_apid_scope", &scope) - err = ele.Get("id", &id) - err = ele.Get("app_id", &appId) - err = ele.Get("consumer_secret", &consumerSecret) - err = ele.Get("app_status", &appstatus) - err = ele.Get("status", &status) - err = ele.Get("issued_at", &issuedAt) - err = ele.Get("tenant_id", &tenantId) + 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) - _, err = txn.Exec("INSERT INTO APP_CREDENTIAL (_apid_scope, id, app_id, consumer_secret, app_status, status, issued_at, tenant_id)VALUES(?,?,?,?,?,?,?,?);", + 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, @@ -143,31 +147,35 @@ if err != nil { log.Error("INSERT CRED Failed: ", id, ", ", scope, ")", err) - txn.Rollback() + return false } else { log.Info("INSERT CRED Success: (", id, ", ", scope, ")") - txn.Commit() + return true } } -func insertApiProductMapper(ele common.Row, db *sql.DB) { +func insertApiProductMapper(ele common.Row, db *sql.DB) bool { var ApiProduct, AppId, EntityIdentifier, tenantId, Scope, Status string - txn, _ := db.Begin() - err := ele.Get("apiprdt_id", &ApiProduct) - err = ele.Get("app_id", &AppId) - err = ele.Get("appcred_id", &EntityIdentifier) - err = ele.Get("tenant_id", &tenantId) - err = ele.Get("_apid_scope", &Scope) - err = ele.Get("status", &Status) + 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 */ - _, err = txn.Exec("INSERT INTO APP_CREDENTIAL_APIPRODUCT_MAPPER(apiprdt_id, app_id, appcred_id, tenant_id, _apid_scope, status) VALUES(?,?,?,?,?,?);", + 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, @@ -177,50 +185,54 @@ if err != nil { log.Error("INSERT APP_CREDENTIAL_APIPRODUCT_MAPPER Failed: (", - ApiProduct, - AppId, - EntityIdentifier, - tenantId, - Scope, + ApiProduct, ", ", + AppId, ", ", + EntityIdentifier, ", ", + tenantId, ", ", + Scope, ", ", Status, ")", err) - txn.Rollback() + return false } else { log.Info("INSERT APP_CREDENTIAL_APIPRODUCT_MAPPER Success: (", - ApiProduct, - AppId, - EntityIdentifier, - tenantId, - Scope, + ApiProduct, ", ", + AppId, ", ", + EntityIdentifier, ", ", + tenantId, ", ", + Scope, ", ", Status, ")") - txn.Commit() + return true } } /* * DELETE CRED */ -func deleteCredential(ele common.Row, db *sql.DB) { - +func deleteCredential(ele common.Row, db *sql.DB) bool { + return true } /* * INSERT INTO API product op */ -func insertAPIproduct(ele common.Row, db *sql.DB) { +func insertAPIproduct(ele common.Row, db *sql.DB) bool { var scope, apiProduct, res, env, tenantId string - txn, _ := db.Begin() - err := ele.Get("_apid_scope", &scope) - err = ele.Get("id", &apiProduct) - err = ele.Get("api_resources", &res) - err = ele.Get("environments", &env) - err = ele.Get("tenant_id", &tenantId) + ele.Get("_apid_scope", &scope) + ele.Get("id", &apiProduct) + ele.Get("api_resources", &res) + ele.Get("environments", &env) + ele.Get("tenant_id", &tenantId) - _, err = txn.Exec("INSERT INTO API_PRODUCT (id, api_resources, environments, tenant_id,_apid_scope) VALUES(?,?,?,?,?)", + 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, @@ -228,11 +240,11 @@ scope) if err != nil { - log.Error("INSERT API_PRODUCT Failed: (", apiProduct, tenantId, ")", err) - txn.Rollback() + log.Error("INSERT API_PRODUCT Failed: (", apiProduct, ", ", tenantId, ")", err) + return false } else { - log.Info("INSERT API_PRODUCT Success: (", apiProduct, tenantId, ")") - txn.Commit() + log.Info("INSERT API_PRODUCT Success: (", apiProduct, ", ", tenantId, ")") + return true } } @@ -240,26 +252,30 @@ /* * INSERT INTO APP op */ -func insertCreateApplication(ele common.Row, db *sql.DB) { +func insertCreateApplication(ele common.Row, db *sql.DB) bool { var scope, EntityIdentifier, DeveloperId, CallbackUrl, Status, AppName, AppFamily, tenantId, CreatedBy, LastModifiedBy string var CreatedAt, LastModifiedAt int64 - txn, _ := db.Begin() - err := ele.Get("_apid_scope", &scope) - err = ele.Get("id", &EntityIdentifier) - err = ele.Get("developer_id", &DeveloperId) - err = ele.Get("callback_url", &CallbackUrl) - err = ele.Get("status", &Status) - err = ele.Get("name", &AppName) - err = ele.Get("app_family", &AppFamily) - err = ele.Get("created_at", &CreatedAt) - err = ele.Get("created_by", &CreatedBy) - err = ele.Get("updated_at", &LastModifiedAt) - err = ele.Get("updated_by", &LastModifiedBy) - err = ele.Get("tenant_id", &tenantId) + 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) - _, err = txn.Exec("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(?,?,?,?,?,?,?,?,?,?,?,?);", + 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, @@ -274,11 +290,11 @@ tenantId) if err != nil { - log.Error("INSERT APP Failed: (", EntityIdentifier, tenantId, ")", err) - txn.Rollback() + log.Error("INSERT APP Failed: (", EntityIdentifier, ", ", tenantId, ")", err) + return false } else { - log.Info("INSERT APP Success: (", EntityIdentifier, tenantId, ")") - txn.Commit() + log.Info("INSERT APP Success: (", EntityIdentifier, ", ", tenantId, ")") + return true } } @@ -286,25 +302,30 @@ /* * INSERT INTO DEVELOPER op */ -func insertCreateDeveloper(ele common.Row, db *sql.DB) { +func insertCreateDeveloper(ele common.Row, db *sql.DB) bool { var scope, EntityIdentifier, Email, Status, UserName, FirstName, LastName, tenantId, CreatedBy, LastModifiedBy, Username string var CreatedAt, LastModifiedAt int64 - txn, _ := db.Begin() - err := ele.Get("_apid_scope", &scope) - err = ele.Get("email", &Email) - err = ele.Get("id", &EntityIdentifier) - err = ele.Get("tenant_id", &tenantId) - err = ele.Get("status", &Status) - err = ele.Get("username", &Username) - err = ele.Get("first_name", &FirstName) - err = ele.Get("last_name", &LastName) - err = ele.Get("created_at", &CreatedAt) - err = ele.Get("created_by", &CreatedBy) - err = ele.Get("updated_at", &LastModifiedAt) - err = ele.Get("updated_by", &LastModifiedBy) + 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) - _, err = txn.Exec("INSERT INTO DEVELOPER (_apid_scope,email,id,tenant_id,status,username,first_name,last_name,created_at,created_by,updated_at,updated_by) VALUES(?,?,?,?,?,?,?,?,?,?,?,?);", + 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, @@ -319,10 +340,10 @@ LastModifiedBy) if err != nil { - log.Error("INSERT DEVELOPER Failed: (", EntityIdentifier, scope, ")", err) - txn.Rollback() + log.Error("INSERT DEVELOPER Failed: (", EntityIdentifier, ", ", scope, ")", err) + return false } else { - log.Info("INSERT DEVELOPER Success: (", EntityIdentifier, scope, ")") - txn.Commit() + log.Info("INSERT DEVELOPER Success: (", EntityIdentifier, ", ", scope, ")") + return true } }