Merge pull request #4 from 30x/ad-hoc-fixes
Ad hoc fixes
diff --git a/api_test.go b/api_test.go
index 74ecf36..87430a8 100644
--- a/api_test.go
+++ b/api_test.go
@@ -146,6 +146,12 @@
Expect(res).Should(BeTrue())
}
+ for i := 0; i < 10; i++ {
+ row := generateTestCompanyDeveloper(i)
+ res := deleteCompanyDeveloper(row, txn)
+ Expect(res).Should(BeTrue())
+ }
+
txn.Commit()
})
@@ -174,7 +180,7 @@
res = deleteObject("COMPANY", row, txn)
Expect(res).Should(BeFalse())
- res = deleteObject("COMPANY_DEVELOPER", row, txn)
+ res = deleteCompanyDeveloper(row, txn)
Expect(res).Should(BeFalse())
txn.Rollback()
diff --git a/glide.yaml b/glide.yaml
index 2dcac69..3af9f0a 100644
--- a/glide.yaml
+++ b/glide.yaml
@@ -1,7 +1,11 @@
package: github.com/30x/apidVerifyAPIKey
import:
- package: github.com/30x/apid
+ version: master
- package: github.com/30x/apidApigeeSync
+ version: master
testImport:
- package: github.com/onsi/ginkgo/ginkgo
-- package: github.com/onsi/gomega
\ No newline at end of file
+ version: master
+- package: github.com/onsi/gomega
+ version: master
diff --git a/listener.go b/listener.go
index 7dcd4b6..b59a31d 100644
--- a/listener.go
+++ b/listener.go
@@ -2,6 +2,7 @@
import (
"database/sql"
+
"github.com/30x/apid"
"github.com/apigee-labs/transicator/common"
)
@@ -272,7 +273,7 @@
ele.Get("updated_by", &LastModifiedBy)
/* Mandatory params check */
- if scope == "" || tenantId == "" || CompanyId == "" || DeveloperId == ""{
+ if scope == "" || tenantId == "" || CompanyId == "" || DeveloperId == "" {
log.Error("INSERT COMPANY_DEVELOPER: i/p args missing")
return false
}
@@ -470,6 +471,7 @@
log.Error("Unable to create transaction")
return
}
+ defer txn.Rollback()
var rows []common.Row
ok := true
@@ -527,12 +529,12 @@
ok = insertCompanyDevelopers(rows, txn)
case common.Update:
- ok = deleteObject("COMPANY_DEVELOPER", payload.OldRow, txn)
+ ok = deleteCompanyDeveloper(payload.OldRow, txn)
rows = append(rows, payload.NewRow)
ok = insertCompanyDevelopers(rows, txn)
case common.Delete:
- ok = deleteObject("COMPANY_DEVELOPER", payload.OldRow, txn)
+ ok = deleteCompanyDeveloper(payload.OldRow, txn)
}
case "kms.app_credential":
switch payload.Operation {
@@ -580,7 +582,6 @@
}
if !ok {
log.Error("Sql Operation error. Operation rollbacked")
- txn.Rollback()
return
}
}
@@ -647,3 +648,30 @@
log.Errorf("DELETE APP_CREDENTIAL_APIPRODUCT_MAPPER (%s, %s, %s, %s) failed.", ApiProduct, AppId, EntityIdentifier, apid_scope, err)
return false
}
+
+func deleteCompanyDeveloper(ele common.Row, txn *sql.Tx) bool {
+ prep, err := txn.Prepare(`
+ DELETE FROM COMPANY_DEVELOPER
+ WHERE tenant_id=$1 AND company_id=$2 AND developer_id=$3`)
+ if err != nil {
+ log.Errorf("DELETE COMPANY_DEVELOPER Failed: %v", err)
+ return false
+ }
+ defer prep.Close()
+
+ var tenantId, companyId, developerId string
+ ele.Get("tenant_id", &tenantId)
+ ele.Get("company_id", &companyId)
+ ele.Get("developer_id", &developerId)
+
+ res, err := txn.Stmt(prep).Exec(tenantId, companyId, developerId)
+ if err == nil {
+ affect, err := res.RowsAffected()
+ if err == nil && affect != 0 {
+ log.Debugf("DELETE COMPANY_DEVELOPER (%s, %s, %s) success.", tenantId, companyId, developerId)
+ return true
+ }
+ }
+ log.Errorf("DELETE COMPANY_DEVELOPER (%s, %s, %s) failed: %v", tenantId, companyId, developerId, err)
+ return false
+}