[XAPID-1037] move sql queries to different file
diff --git a/data.go b/data.go
index 695ef8e..6270b43 100644
--- a/data.go
+++ b/data.go
@@ -59,42 +59,13 @@
getApiKeyDetails(dataWrapper *VerifyApiKeyRequestResponseDataWrapper) error
}
-func (dbc *dbManager) getKmsAttributesOld(tenantId, entityId string) []Attribute {
-
- db := dbc.db
- var attName, attValue sql.NullString
- sql := "select name, value from kms_attributes where tenant_id = $1 and entity_id = $2"
- attributesForQuery := []Attribute{}
- attributes, err := db.Query(sql, tenantId, entityId)
- if err != nil {
- log.Error("Error while fetching attributes for tenant id : %s and entityId : %s", tenantId, entityId, err)
- return attributesForQuery
- }
-
- for attributes.Next() {
- err := attributes.Scan(
- &attName,
- &attValue,
- )
- if err != nil {
- log.Error("error fetching attributes for entityid ", entityId, err)
- }
- if attName.String != "" {
- att := Attribute{Name: attName.String, Value: attValue.String}
- attributesForQuery = append(attributesForQuery, att)
- }
- }
- log.Debug("attributes returned for query ", sql, " are ", attributesForQuery, tenantId, entityId)
- return attributesForQuery
-}
-
func (dbc *dbManager) getKmsAttributes(tenantId string, entities ...string) map[string][]Attribute {
db := dbc.db
var attName, attValue sql.NullString
var entity_id string
// TODO : is there no other better way to do in caluse???
- sql := `select entity_id, name, value from kms_attributes where tenant_id = $1 and entity_id in ('` + strings.Join(entities, `','`) + `')`
+ sql := sql_GET_KMS_ATTRIBUTES_FOR_TENANT + ` and entity_id in ('` + strings.Join(entities, `','`) + `')`
mapOfAttributes := make(map[string][]Attribute)
attributes, err := db.Query(sql, tenantId)
if err != nil {
@@ -122,105 +93,8 @@
func (dbc dbManager) getApiKeyDetails(dataWrapper *VerifyApiKeyRequestResponseDataWrapper) error {
db := dbc.db
- sSql := `
- SELECT
- COALESCE("developer","") as ctype,
- COALESCE(c.tenant_id,""),
- COALESCE(c.status,""),
- COALESCE(c.consumer_secret,""),
-
- COALESCE(ad.id,"") as dev_id,
- COALESCE(ad.username,"") as dev_username,
- COALESCE(ad.first_name,"") as dev_first_name,
- COALESCE(ad.last_name,"") as dev_last_name,
- COALESCE(ad.email,"") as dev_email,
- COALESCE(ad.status,"") as dev_status,
- COALESCE(ad.created_at,"") as dev_created_at,
- COALESCE(ad.created_by,"") as dev_created_by,
- COALESCE(ad.updated_at,"") as dev_updated_at,
- COALESCE(ad.updated_by,"") as dev_updated_by,
-
- COALESCE(a.id,"") as app_id,
- COALESCE(a.name,"") as app_name,
- COALESCE(a.access_type,"") as app_access_type,
- COALESCE(a.callback_url,"") as app_callback_url,
- COALESCE(a.display_name,"") as app_display_name,
- COALESCE(a.status,"") as app_status,
- COALESCE(a.app_family,"") as app_app_family,
- COALESCE(a.company_id,"") as app_company_id,
- COALESCE(a.created_at,"") as app_created_at,
- COALESCE(a.created_by,"") as app_created_by,
- COALESCE(a.updated_at,"") as app_updated_at,
- COALESCE(a.updated_by,"") as app_updated_by
-
- FROM
- KMS_APP_CREDENTIAL AS c
- INNER JOIN KMS_APP AS a
- ON c.app_id = a.id
- INNER JOIN KMS_DEVELOPER AS ad
- ON ad.id = a.developer_id
- INNER JOIN KMS_APP_CREDENTIAL_APIPRODUCT_MAPPER as mp
- ON mp.appcred_id = c.id
- INNER JOIN KMS_ORGANIZATION AS o
- ON o.tenant_id = c.tenant_id
- WHERE (
- mp.app_id = a.id
- AND mp.appcred_id = c.id
- AND c.id = $1
- AND o.name = $2)
- UNION ALL
- SELECT
- COALESCE("company","") as ctype,
- COALESCE(c.tenant_id,""),
-
- COALESCE(c.status,""),
- COALESCE(c.consumer_secret,""),
-
- COALESCE(ad.id,"") as dev_id,
- COALESCE(ad.display_name,"") as dev_username,
- COALESCE("","") as dev_first_name,
- COALESCE("","") as dev_last_name,
- COALESCE("","") as dev_email,
- COALESCE(ad.status,"") as dev_status,
- COALESCE(ad.created_at,"") as dev_created_at,
- COALESCE(ad.created_by,"") as dev_created_by,
- COALESCE(ad.updated_at,"") as dev_updated_at,
- COALESCE(ad.updated_by,"") as dev_updated_by,
-
- COALESCE(a.id,"") as app_id,
- COALESCE(a.name,"") as app_name,
- COALESCE(a.access_type,"") as app_access_type,
- COALESCE(a.callback_url,"") as app_callback_url,
- COALESCE(a.display_name,"") as app_display_name,
- COALESCE(a.status,"") as app_status,
- COALESCE(a.app_family,"") as app_app_family,
- COALESCE(a.company_id,"") as app_company_id,
- COALESCE(a.created_at,"") as app_created_at,
- COALESCE(a.created_by,"") as app_created_by,
- COALESCE(a.updated_at,"") as app_updated_at,
- COALESCE(a.updated_by,"") as app_updated_by
-
- FROM
- KMS_APP_CREDENTIAL AS c
- INNER JOIN KMS_APP AS a
- ON c.app_id = a.id
- INNER JOIN KMS_COMPANY AS ad
- ON ad.id = a.company_id
- INNER JOIN KMS_APP_CREDENTIAL_APIPRODUCT_MAPPER as mp
- ON mp.appcred_id = c.id
- INNER JOIN KMS_ORGANIZATION AS o
- ON o.tenant_id = c.tenant_id
- WHERE (
- mp.app_id = a.id
- AND mp.appcred_id = c.id
- AND c.id = $1
- AND o.name = $2)
- ;`
-
- //cid,csecret,did,dusername,dfirstname,dlastname,demail,dstatus,dcreated_at,dcreated_by,dlast_modified_at,dlast_modified_by, aid,aname,aaccesstype,acallbackurl,adisplay_name,astatus,aappfamily, acompany,acreated_at,acreated_by,alast_modified_at,alast_modified_by,pid,pname,pdisplayname,pquota_limit,pqutoainterval,pquotatimeout,pcreated_at,pcreated_by,plast_modified_at,plast_modified_by sql.NullString
-
- err := db.QueryRow(sSql, dataWrapper.verifyApiKeyRequest.Key, dataWrapper.verifyApiKeyRequest.OrganizationName).
+ err := db.QueryRow(sql_GET_API_KEY_DETAILS_SQL , dataWrapper.verifyApiKeyRequest.Key, dataWrapper.verifyApiKeyRequest.OrganizationName).
Scan(
&dataWrapper.ctype,
&dataWrapper.tenant_id,
@@ -273,36 +147,8 @@
db := dbc.db
allProducts := []ApiProductDetails{}
var proxies, environments, resources string
- sSql := `
- SELECT
- COALESCE(ap.id,"") as prod_id,
- COALESCE(ap.name,"") as prod_name,
- COALESCE(ap.display_name,"") as prod_display_name,
- COALESCE(ap.quota,"") as prod_quota,
- COALESCE(ap.quota_interval, 0) as prod_quota_interval,
- COALESCE(ap.quota_time_unit,"") as prod_quota_time_unit,
- COALESCE(ap.created_at,"") as prod_created_at,
- COALESCE(ap.created_by,"") as prod_created_by,
- COALESCE(ap.updated_at,"") as prod_updated_at,
- COALESCE(ap.updated_by,"") as prod_updated_by,
- COALESCE(ap.proxies,"") as prod_proxies,
- COALESCE(ap.environments,"") as prod_environments,
- COALESCE(ap.api_resources,"") as prod_resources
- FROM
- KMS_APP_CREDENTIAL AS c
- INNER JOIN KMS_APP_CREDENTIAL_APIPRODUCT_MAPPER as mp
- ON mp.appcred_id = c.id
- INNER JOIN KMS_API_PRODUCT as ap
- ON ap.id = mp.apiprdt_id
- WHERE (mp.apiprdt_id = ap.id
- AND mp.appcred_id = c.id
- AND c.id = $1
- AND ap.tenant_id = $2)
- ;`
- //cid,csecret,did,dusername,dfirstname,dlastname,demail,dstatus,dcreated_at,dcreated_by,dlast_modified_at,dlast_modified_by, aid,aname,aaccesstype,acallbackurl,adisplay_name,astatus,aappfamily, acompany,acreated_at,acreated_by,alast_modified_at,alast_modified_by,pid,pname,pdisplayname,pquota_limit,pqutoainterval,pquotatimeout,pcreated_at,pcreated_by,plast_modified_at,plast_modified_by sql.NullString
-
- rows, err := db.Query(sSql, key, tenantId)
+ rows, err := db.Query(sql_GET_API_PRODUCTS_FOR_KEY_SQL, key, tenantId)
if err != nil {
log.Error("error fetching apiProduct details", err)
diff --git a/sqlQueries.go b/sqlQueries.go
new file mode 100644
index 0000000..609c3b3
--- /dev/null
+++ b/sqlQueries.go
@@ -0,0 +1,142 @@
+// Copyright 2017 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package apidVerifyApiKey
+
+const sql_GET_API_KEY_DETAILS_SQL = `
+ SELECT
+ COALESCE("developer","") as ctype,
+ COALESCE(c.tenant_id,""),
+
+ COALESCE(c.status,""),
+ COALESCE(c.consumer_secret,""),
+
+ COALESCE(ad.id,"") as dev_id,
+ COALESCE(ad.username,"") as dev_username,
+ COALESCE(ad.first_name,"") as dev_first_name,
+ COALESCE(ad.last_name,"") as dev_last_name,
+ COALESCE(ad.email,"") as dev_email,
+ COALESCE(ad.status,"") as dev_status,
+ COALESCE(ad.created_at,"") as dev_created_at,
+ COALESCE(ad.created_by,"") as dev_created_by,
+ COALESCE(ad.updated_at,"") as dev_updated_at,
+ COALESCE(ad.updated_by,"") as dev_updated_by,
+
+ COALESCE(a.id,"") as app_id,
+ COALESCE(a.name,"") as app_name,
+ COALESCE(a.access_type,"") as app_access_type,
+ COALESCE(a.callback_url,"") as app_callback_url,
+ COALESCE(a.display_name,"") as app_display_name,
+ COALESCE(a.status,"") as app_status,
+ COALESCE(a.app_family,"") as app_app_family,
+ COALESCE(a.company_id,"") as app_company_id,
+ COALESCE(a.created_at,"") as app_created_at,
+ COALESCE(a.created_by,"") as app_created_by,
+ COALESCE(a.updated_at,"") as app_updated_at,
+ COALESCE(a.updated_by,"") as app_updated_by
+
+ FROM
+ KMS_APP_CREDENTIAL AS c
+ INNER JOIN KMS_APP AS a
+ ON c.app_id = a.id
+ INNER JOIN KMS_DEVELOPER AS ad
+ ON ad.id = a.developer_id
+ INNER JOIN KMS_APP_CREDENTIAL_APIPRODUCT_MAPPER as mp
+ ON mp.appcred_id = c.id
+ INNER JOIN KMS_ORGANIZATION AS o
+ ON o.tenant_id = c.tenant_id
+ WHERE (
+ mp.app_id = a.id
+ AND mp.appcred_id = c.id
+ AND c.id = $1
+ AND o.name = $2)
+ UNION ALL
+ SELECT
+ COALESCE("company","") as ctype,
+ COALESCE(c.tenant_id,""),
+
+ COALESCE(c.status,""),
+ COALESCE(c.consumer_secret,""),
+
+ COALESCE(ad.id,"") as dev_id,
+ COALESCE(ad.display_name,"") as dev_username,
+ COALESCE("","") as dev_first_name,
+ COALESCE("","") as dev_last_name,
+ COALESCE("","") as dev_email,
+ COALESCE(ad.status,"") as dev_status,
+ COALESCE(ad.created_at,"") as dev_created_at,
+ COALESCE(ad.created_by,"") as dev_created_by,
+ COALESCE(ad.updated_at,"") as dev_updated_at,
+ COALESCE(ad.updated_by,"") as dev_updated_by,
+
+ COALESCE(a.id,"") as app_id,
+ COALESCE(a.name,"") as app_name,
+ COALESCE(a.access_type,"") as app_access_type,
+ COALESCE(a.callback_url,"") as app_callback_url,
+ COALESCE(a.display_name,"") as app_display_name,
+ COALESCE(a.status,"") as app_status,
+ COALESCE(a.app_family,"") as app_app_family,
+ COALESCE(a.company_id,"") as app_company_id,
+ COALESCE(a.created_at,"") as app_created_at,
+ COALESCE(a.created_by,"") as app_created_by,
+ COALESCE(a.updated_at,"") as app_updated_at,
+ COALESCE(a.updated_by,"") as app_updated_by
+
+ FROM
+ KMS_APP_CREDENTIAL AS c
+ INNER JOIN KMS_APP AS a
+ ON c.app_id = a.id
+ INNER JOIN KMS_COMPANY AS ad
+ ON ad.id = a.company_id
+ INNER JOIN KMS_APP_CREDENTIAL_APIPRODUCT_MAPPER as mp
+ ON mp.appcred_id = c.id
+ INNER JOIN KMS_ORGANIZATION AS o
+ ON o.tenant_id = c.tenant_id
+ WHERE (
+ mp.app_id = a.id
+ AND mp.appcred_id = c.id
+ AND c.id = $1
+ AND o.name = $2)
+ ;`
+
+
+const sql_GET_API_PRODUCTS_FOR_KEY_SQL = `
+ SELECT
+ COALESCE(ap.id,"") as prod_id,
+ COALESCE(ap.name,"") as prod_name,
+ COALESCE(ap.display_name,"") as prod_display_name,
+ COALESCE(ap.quota,"") as prod_quota,
+ COALESCE(ap.quota_interval, 0) as prod_quota_interval,
+ COALESCE(ap.quota_time_unit,"") as prod_quota_time_unit,
+ COALESCE(ap.created_at,"") as prod_created_at,
+ COALESCE(ap.created_by,"") as prod_created_by,
+ COALESCE(ap.updated_at,"") as prod_updated_at,
+ COALESCE(ap.updated_by,"") as prod_updated_by,
+ COALESCE(ap.proxies,"") as prod_proxies,
+ COALESCE(ap.environments,"") as prod_environments,
+ COALESCE(ap.api_resources,"") as prod_resources
+ FROM
+ KMS_APP_CREDENTIAL AS c
+ INNER JOIN KMS_APP_CREDENTIAL_APIPRODUCT_MAPPER as mp
+ ON mp.appcred_id = c.id
+ INNER JOIN KMS_API_PRODUCT as ap
+ ON ap.id = mp.apiprdt_id
+ WHERE (mp.apiprdt_id = ap.id
+ AND mp.appcred_id = c.id
+ AND c.id = $1
+ AND ap.tenant_id = $2
+ AND mp.status = 'APPROVED')
+ ;`
+
+
+const sql_GET_KMS_ATTRIBUTES_FOR_TENANT = "select entity_id, name, value from kms_attributes where tenant_id = $1"