Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 0 additions & 97 deletions backend/src/api/endpoints/feedback.py

This file was deleted.

24 changes: 0 additions & 24 deletions backend/src/app/core/data/dto/feedback.py

This file was deleted.

41 changes: 0 additions & 41 deletions backend/src/app/core/db/redis_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,6 @@
CrawlerJobUpdate,
)
from app.core.data.dto.export_job import ExportJobCreate, ExportJobRead, ExportJobUpdate
from app.core.data.dto.feedback import (
FeedbackCreateIntern,
FeedbackRead,
)
from app.core.data.dto.import_job import ImportJobCreate, ImportJobRead, ImportJobUpdate
from app.core.data.dto.llm_job import LLMJobCreate, LLMJobRead, LLMJobUpdate
from app.core.data.dto.trainer_job import (
Expand Down Expand Up @@ -440,43 +436,6 @@ def get_most_recent_cota_job_by_cota_id(
else:
return sorted(all_cota_jobs_by_cota_id, key=lambda x: x.updated)[-1]

def store_feedback(self, feedback: FeedbackCreateIntern) -> FeedbackRead:
client = self._get_client("feedback")
key = self._generate_random_key()
fb = FeedbackRead(
id=key,
user_content=feedback.user_content,
user_id=feedback.user_id,
created=datetime.now(),
)
if client.set(key.encode("utf-8"), fb.model_dump_json()) != 1:
msg = "Cannot store Feedback!"
logger.error(msg)
raise RuntimeError(msg)

logger.debug("Successfully stored Feedback!")

return fb

def load_feedback(self, key: str) -> FeedbackRead:
client = self._get_client("feedback")
fb = client.get(key.encode("utf-8"))
if fb is None:
msg = f"Feedback with ID {key} does not exist!"
logger.error(msg)
raise KeyError(msg)

logger.debug(f"Successfully loaded Feedback {key}")
return FeedbackRead.model_validate_json(fb)

def get_all_feedbacks(self) -> List[FeedbackRead]:
client = self._get_client("feedback")
return [self.load_feedback(str(key, "utf-8")) for key in client.keys()]

def get_all_feedbacks_of_user(self, user_id: int) -> List[FeedbackRead]:
fbs = self.get_all_feedbacks()
return [fb for fb in fbs if fb.user_id == user_id]

def store_llm_job(self, llm_job: Union[LLMJobCreate, LLMJobRead]) -> LLMJobRead:
client = self._get_client("llm")

Expand Down
39 changes: 0 additions & 39 deletions backend/src/app/core/mail/mail_service.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from fastapi_mail import ConnectionConfig, FastMail, MessageSchema, MessageType
from pydantic import EmailStr

from app.core.data.dto.feedback import FeedbackRead
from app.core.data.dto.user import UserRead
from app.util.singleton_meta import SingletonMeta
from config import conf
Expand All @@ -22,7 +21,6 @@ def __new__(cls, *args, **kwargs):
VALIDATE_CERTS=conf.mail.validate_certs == "True",
)
)
cls.feedback_mail_address = conf.mail.mail
return super(MailService, cls).__new__(cls)

async def send_mail(self, email: EmailStr, subject: str, body: str):
Expand All @@ -48,40 +46,3 @@ async def send_welcome_mail(self, user: UserRead):
<p>Best regards,<br>The DATS Team</p>
"""
await self.send_mail(email=user.email, subject=subject, body=body)

async def send_feedback_received_mail(self, user: UserRead, feedback: FeedbackRead):
feedback_html = "> " + "<br>> ".join(feedback.user_content.splitlines())
subject = (
f"[DATS Feedback] New feedback from {user.first_name} {user.last_name}"
)
body = f"""
<p>Hi DATS Team,</p>
<p>We recieved new feedback!</p>
<p>
{feedback_html}
</p>
<p>Best regards,<br>DATS Notification Service</p>
"""
await self.send_mail(
email=self.feedback_mail_address, subject=subject, body=body
)

async def send_feedback_response_mail(
self, user: UserRead, feedback: FeedbackRead, message: str
):
feedback_html = "> " + "<br>> ".join(feedback.user_content.splitlines())
subject = "Your DATS Feedback"
body = f"""
<p>Hi {user.first_name} {user.last_name},</p>
<p>Thanks for you feedback!</p>
<p>
{feedback_html}
</p>
<p>
We have a message regarding this feedback for you:
<br>
{message}
</p>
<p>Best regards,<br>The DATS Team</p>
"""
await self.send_mail(email=user.email, subject=subject, body=body)
1 change: 0 additions & 1 deletion backend/src/configs/development.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,6 @@ redis:
port: ${oc.env:REDIS_PORT, 13124}
password: ${oc.env:REDIS_PASSWORD, dats123}
clients:
feedback: 1 # name: redis db index -- DO NOT USE DB 0, it's reserved for RabbitMQ!
export: 2
crawler: 3
trainer: 4
Expand Down
1 change: 0 additions & 1 deletion backend/src/configs/production.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,6 @@ redis:
port: 6379
password: ${oc.env:REDIS_PASSWORD, dats123}
clients:
feedback: 1 # name: redis db index -- DO NOT USE DB 0, it's reserved for RabbitMQ!
export: 2
crawler: 3
trainer: 4
Expand Down
2 changes: 0 additions & 2 deletions backend/src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@
crawler,
document_tag,
export,
feedback,
general,
import_,
llm,
Expand Down Expand Up @@ -256,7 +255,6 @@ def invalid_error_handler(_, exc: InvalidError):
app.include_router(memo.router)
app.include_router(search.router)
app.include_router(source_document_metadata.router)
app.include_router(feedback.router)
app.include_router(analysis.router)
app.include_router(prepro.router)
app.include_router(export.router)
Expand Down
9 changes: 0 additions & 9 deletions backend/src/test/api/endpoints/test_stories.py
Original file line number Diff line number Diff line change
Expand Up @@ -946,15 +946,6 @@ def test_bbox_annotation_and_memo(client, api_code, api_user, api_document) -> N
assert bbox1_remove_response.status_code == 200


@pytest.mark.order(after="test_project_add_user")
def test_feedback(client, api_user) -> None:
bob = api_user.user_list["bob"]
feedback = {"user_content": "I really love this app!"}
# Bob creates feedback
response_fail = client.put("feedback", headers=bob["AuthHeader"], json=feedback)
assert response_fail.status_code == 200


@pytest.mark.order(after="test_project_add_user")
def test_project_metadata(client, api_user, api_project) -> None:
alice = api_user.user_list["alice"]
Expand Down
23 changes: 0 additions & 23 deletions backend/src/test/app/core/data/crud/test_feedback_crud.py

This file was deleted.

41 changes: 0 additions & 41 deletions frontend/src/api/FeedbackHooks.ts

This file was deleted.

8 changes: 0 additions & 8 deletions frontend/src/api/QueryKey.ts
Original file line number Diff line number Diff line change
Expand Up @@ -147,14 +147,6 @@ export const QueryKey = {
// all llm jobs of a Project (by project id)
PROJECT_LLM_JOBS: "projectLLMJobs",

// TO BE DELETED:
// a single feedback (by feedback id)
FEEDBACK: "feedback",
// all feedback
FEEDBACKS: "feedbacks",
// all logged-in user's feedbacks
FEEDBACKS_USER: "feedbacksUser",

// TO BE DELETED:
// a single TABLE (by TABLE id)
TABLE: "table",
Expand Down
10 changes: 0 additions & 10 deletions frontend/src/api/openapi/models/FeedbackCreate.ts

This file was deleted.

22 changes: 0 additions & 22 deletions frontend/src/api/openapi/models/FeedbackRead.ts

This file was deleted.

Loading
Loading