Skip to content

Commit

Permalink
implementing FieldFilter for pageWeight endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
maceto committed Jul 23, 2024
1 parent faa083a commit e2b0501
Showing 1 changed file with 25 additions and 22 deletions.
47 changes: 25 additions & 22 deletions functions/page-weight/libs/queries.py
Original file line number Diff line number Diff line change
@@ -1,34 +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 = 'page_weight'

def list_data(params):
ref = DB.collection(u'page_weight')

query = ref
print("params", params)
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'])

documents = query.stream()

technology_array = convert_to_array(params['technology'])
data = []
for doc in documents:
data.append(doc.to_dict())

for technology in technology_array:
query = DB.collection(TABLE)

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 '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)

0 comments on commit e2b0501

Please sign in to comment.