brain / Brain /src /service /feedback_service.py
Kotta
feature(#9): pinecone key management
38d2586
from os import remove
from typing import Any
import firebase_admin
from firebase_admin import firestore
from Brain.src.model.feedback_model import FeedbackModel
"""service to manage feedback collection"""
class FeedbackService:
db: Any
feedbacks_ref: Any
def __init__(self, firebase_app: firebase_admin.App):
self.firebase_app = firebase_app
def init_firestore(self):
self.db = firestore.client(app=self.firebase_app)
self.feedbacks_ref = self.db.collection("feedbacks")
"""add a new feedback"""
def add(self, feedback: FeedbackModel):
self.init_firestore()
return self.feedbacks_ref.document().set(feedback.to_json())
"""get list of feedback"""
def get(self, search, rating):
self.init_firestore()
if rating == 0:
query = self.feedbacks_ref.where("rating", "!=", rating)
else:
query = self.feedbacks_ref.where("rating", "==", rating)
if search.replace(" ", "") != "":
query = query.where("prompt.message", ">=", search).where(
"prompt.message", "<=", search + "~"
)
docs = query.stream()
result = []
for item in docs:
item_data = item.to_dict()
result.append({"id": item.id, "data": item_data})
print(result)
return result