youssef1214's picture
Update Classes.py
5aeccd7
from firebase_admin import credentials
from firebase_admin import firestore
import threading
from firebase_admin import db
# Import the Firebase Admin SDK
import firebase_admin
db = firestore.client()
class Shakwa(object):
def __init__(self, address, complaintbody, date, governorate, id,organization,summary,title,userid):
self.address = address
self.complaintbody = complaintbody
self.date = date
self.governorate = governorate
self.id = id
self.organization = organization
self.summary = summary
self.title = title
self.userid = userid
def __eq__(self, other):
return self.id == other.id
# Get the user data from Firestore
def get_data(self):
# Get a document reference with the user's email as the ID
doc_ref = db.collection('complaints').document(self.id)
# Get the document snapshot
doc = doc_ref.get()
# Check if the document exists
if doc.exists:
# Return the document data as a User object
return Shakwa.from_dict(doc.to_dict())
else:
# Return None if the document does not exist
return None
# Convert a dictionary to a User object
@staticmethod
def from_dict(source):
# Check if the source is a valid dictionary
if not isinstance(source, dict):
raise ValueError('Source is not a dictionary')
# Create a User object with the source values
shakwa = Shakwa(
source['address'],
source['complaintbody'],
source['date'],
source['governorate'],
source['organization'],
source['summary'],
source['title'],
source['userid'],
source['id']
)
# Return the User object
return shakwa
# Convert a User object to a dictionary
def to_dict(self):
# Create a dictionary with the user's attributes
dest = {
'address': self.address,
'complaintbody': self.complaintbody,
'date': self.date,
'governorate': self.governorate,
'organization':self.organization,
'summary': self.summary,
'title': self.title,
'userid': self.userid,
'id': self.id,
}
# Return the dictionary
return dest
# Represent a User object as a string
def __repr__(self):
return (
f'Shakwa('
f'address={self.address}, '
f'complaintbody={self.complaintbody}, '
f'date={self.date}, '
f'governorate={self.governorate}, '
f'organization={self.organization}'
f'summary={self.summary}'
f'title={self.title}'
f'userid={self.userid}'
f'id={self.id}'
f')'
)
class Feedback(object):
def __init__(self,date, feedback, id,review,userid,label):
self.date = date
self.feedback = feedback
self.id=id
self.review=review
self.userid=userid
self.label=label
def __eq__(self, other):
return self.id == other.id
# Get the Feedback data from Firestore
def get_data(self):
# Get a document reference with the Feedback's Id
doc_ref = db.collection('feedbacks').document(self.id)
# Get the document snapshot
doc = doc_ref.get()
# Check if the document exists
if doc.exists:
# Return the document data as a Feedback object
return Feedback.from_dict(doc.to_dict())
else:
# Return None if the document does not exist
return None
# Convert a dictionary to a Feedback object
@staticmethod
def from_dict(source):
# Check if the source is a valid dictionary
if not isinstance(source, dict):
raise ValueError('Source is not a dictionary')
# Create a Feedback object with the source values
feedback = Feedback(
source['date'],
source['feedback'],
source['id'],
source['review'],
source['userid'],
source['label'],
)
# Return the User object
return feedback
# Convert a Feedback object to a dictionary
def to_dict(self):
# Create a dictionary with the Feedback's attributes
dest = {
'date': self.date,
'feedback': self.feedback,
'id': self.id,
'review': self.review,
'userid': self.userid,
'label': self.label,
}
# Return the dictionary
return dest
# Represent a Feedback object as a string
def __repr__(self):
return (
f'Feedback('
f'date={self.date}, '
f'feedback={self.feedback}, '
f'id={self.id}, '
f'review={self.review}, '
f'userid={self.userid}'
f'label={self.label}'
f')'
)