|
1 | 1 | from pathlib import Path
|
2 |
| -from flask import Flask, jsonify, session, request |
3 |
| -from flask_mail import Mail, Message |
4 |
| -from werkzeug.utils import secure_filename |
| 2 | +from flask import Flask, jsonify, session |
| 3 | +from flask_mail import Mail |
5 | 4 | import os
|
6 | 5 | import secrets
|
7 | 6 |
|
|
15 | 14 |
|
16 | 15 | from .session import InitSessionView, TenantSession
|
17 | 16 | from .citations import get_citation
|
| 17 | +from .feedback import send_feedback |
18 | 18 |
|
19 | 19 | app = Flask(__name__)
|
20 | 20 | mail = Mail(app)
|
|
37 | 37 | mail.init_app(app)
|
38 | 38 |
|
39 | 39 |
|
40 |
| -def send_feedback(): |
41 |
| - feedback = request.form.get("feedback") |
42 |
| - file = request.files.get("transcript") |
43 |
| - |
44 |
| - if not file: |
45 |
| - return "No file provided", 400 |
46 |
| - |
47 |
| - filename = secure_filename(file.filename) |
48 |
| - filepath = os.path.join("/tmp", filename) |
49 |
| - file.save(filepath) |
50 |
| - |
51 |
| - with open(filepath, "r", encoding="utf-8") as f: |
52 |
| - html_content = f.read() |
53 |
| - |
54 |
| - msg = Message( |
55 |
| - subject="Feedback with Transcript", |
56 |
| - sender=os.getenv("MAIL_USERNAME"), |
57 |
| - |
58 |
| - body=f"User feedback:\n\n{feedback}", |
59 |
| - ) |
60 |
| - msg.attach( |
61 |
| - filename="transcript.html", |
62 |
| - content_type="text/html", |
63 |
| - data=html_content.encode("utf-8"), |
64 |
| - ) |
65 |
| - |
66 |
| - mail.send(msg) |
67 |
| - os.remove(filepath) |
68 |
| - |
69 |
| - return "Email sent", 200 |
70 |
| - |
71 |
| - |
72 | 40 | tenant_session = TenantSession()
|
73 | 41 |
|
74 | 42 |
|
@@ -99,7 +67,10 @@ def clear_session():
|
99 | 67 | )
|
100 | 68 |
|
101 | 69 | app.add_url_rule(
|
102 |
| - "/api/feedback", endpoint="feedback", view_func=send_feedback, methods=["POST"] |
| 70 | + "/api/feedback", |
| 71 | + endpoint="feedback", |
| 72 | + view_func=lambda: send_feedback(mail), |
| 73 | + methods=["POST"], |
103 | 74 | )
|
104 | 75 |
|
105 | 76 | if __name__ == "__main__":
|
|
0 commit comments