diff --git a/functions/adoption/libs/queries.py b/functions/adoption/libs/queries.py index 24469d2..43faffa 100644 --- a/functions/adoption/libs/queries.py +++ b/functions/adoption/libs/queries.py @@ -1,32 +1,37 @@ import os -import json from google.cloud import firestore +from google.cloud.firestore_v1.base_query import FieldFilter from .result import Result from .utils import convert_to_array DB = firestore.Client(project=os.environ.get('PROJECT'), database=os.environ.get('DATABASE')) +TABLE = 'adoption' def list_data(params): - ref = DB.collection(u'adoption') - query = ref + technology_array = convert_to_array(params['technology']) + data = [] - if 'start' in params: - query = query.where('date', '>=', params['start']) - if 'end' in params: - query = query.where('date', '<=', params['end']) - if 'geo' in params: - query = query.where('geo', '==', params['geo']) - if 'technology' in params: - params_array = convert_to_array(params['technology']) - query = query.where('technology', 'in', params_array) - if 'rank' in params: - query = query.where('rank', '==', params['rank']) + for technology in technology_array: + query = DB.collection(TABLE) - documents = query.stream() + if 'start' in params: + query = query.where(filter=FieldFilter('date', '>=', params['start'])) - data = [] - for doc in documents: - data.append(doc.to_dict()) + if 'end' in params: + query = query.where(filter=FieldFilter('date', '<=', params['end'])) + + if 'geo' in params: + query = query.where(filter=FieldFilter('geo', '==', params['geo'])) + + if 'rank' in params: + query = query.where(filter=FieldFilter('rank', '==', params['rank'])) + + query = query.where(filter=FieldFilter('technology', '==', technology)) + + documents = query.stream() + + for doc in documents: + data.append(doc.to_dict()) - return Result(result=data) + return Result(result=data) \ No newline at end of file diff --git a/functions/categories/libs/queries.py b/functions/categories/libs/queries.py index b6f94ac..83ae07b 100644 --- a/functions/categories/libs/queries.py +++ b/functions/categories/libs/queries.py @@ -1,13 +1,14 @@ import os -import json from google.cloud import firestore +from google.cloud.firestore_v1.base_query import FieldFilter from .result import Result from .utils import convert_to_array DB = firestore.Client(project=os.environ.get('PROJECT'), database=os.environ.get('DATABASE')) +TABLE = 'categories' def list_data(params): - ref = DB.collection(u'categories') + ref = DB.collection(TABLE) query = ref @@ -27,7 +28,7 @@ def list_data(params): category_array = convert_to_array(params['category']) for category in category_array: - results = query.where("category", "==", category).stream() + results = query.where(filter=FieldFilter("category", "==", category)).stream() for doc in results: data.append(doc.to_dict()) diff --git a/functions/cwvtech/libs/queries.py b/functions/cwvtech/libs/queries.py index ae7b012..bd795cb 100644 --- a/functions/cwvtech/libs/queries.py +++ b/functions/cwvtech/libs/queries.py @@ -1,35 +1,31 @@ import os -import json from google.cloud import firestore +from google.cloud.firestore_v1.base_query import FieldFilter from .result import Result from .utils import convert_to_array DB = firestore.Client(project=os.environ.get('PROJECT'), database=os.environ.get('DATABASE')) +TABLE = 'core_web_vitals' def list_data(params): - ref = DB.collection(u'core_web_vitals') + technology_array = convert_to_array(params['technology']) + data = [] - query = ref - - if 'start' in params: - query = query.where('date', '>=', params['start']) - if 'end' in params: - query = query.where('date', '<=', params['end']) - - if 'geo' in params: - query = query.where('geo', '==', params['geo']) + for technology in technology_array: + query = DB.collection(TABLE) - if 'technology' in params: - params_array = convert_to_array(params['technology']) - query = query.where('technology', 'in', params_array) + if 'start' in params: + query = query.where(filter=FieldFilter('date', '>=', params['start'])) + if 'end' in params: + query = query.where(filter=FieldFilter('date', '<=', params['end'])) - if 'rank' in params: - query = query.where('rank', '==', params['rank']) + query = query.where(filter=FieldFilter('geo', '==', params['geo'])) + query = query.where(filter=FieldFilter('rank', '==', params['rank'])) + query = query.where(filter=FieldFilter('technology', '==', technology)) - documents = query.stream() + documents = query.stream() - data = [] - for doc in documents: - data.append(doc.to_dict()) + for doc in documents: + data.append(doc.to_dict()) return Result(result=data) diff --git a/functions/lighthouse/libs/queries.py b/functions/lighthouse/libs/queries.py index 5bd7c96..f0c7c5f 100644 --- a/functions/lighthouse/libs/queries.py +++ b/functions/lighthouse/libs/queries.py @@ -1,10 +1,11 @@ import os -import json from google.cloud import firestore +from google.cloud.firestore_v1.base_query import FieldFilter from .result import Result from .utils import convert_to_array DB = firestore.Client(project=os.environ.get('PROJECT'), database=os.environ.get('DATABASE')) +TABLE = 'lighthouse' def list_data(params): @@ -12,20 +13,20 @@ def list_data(params): data = [] for technology in technology_array: - query = DB.collection(u'lighthouse') + query = DB.collection(TABLE) if 'start' in params: - query = query.where('date', '>=', params['start']) + query = query.where(filter=FieldFilter('date', '>=', params['start'])) if 'end' in params: - query = query.where('date', '<=', params['end']) + query = query.where(filter=FieldFilter('date', '<=', params['end'])) - query = query.where('geo', '==', params['geo']) - query = query.where('rank', '==', params['rank']) - query = query.where('technology', '==', technology) + query = query.where(filter=FieldFilter('geo', '==', params['geo'])) + query = query.where(filter=FieldFilter('rank', '==', params['rank'])) + query = query.where(filter=FieldFilter('technology', '==', technology)) documents = query.stream() for doc in documents: data.append(doc.to_dict()) - return Result(result=data) + return Result(result=data) \ No newline at end of file