Files
appointment_tool/server.py
T
2023-01-15 14:10:46 +01:00

67 lines
1.6 KiB
Python

import os
import uuid
from flask import Flask
from flask import jsonify
from flask import request
from flask_cors import CORS, cross_origin
from flask_httpauth import HTTPTokenAuth
from src.db.mongo_manager import MONGO_STORE_MANAGER
from src.workers.SpeechToText import SpeechToText
app = Flask(__name__)
cors = CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
auth = HTTPTokenAuth(scheme='Bearer')
secret_token = "97e36f7e-340e-4c02-b329-9415faee38c3"
@auth.verify_token
def verify_token(token):
return token == secret_token
@app.route('/send-email', methods=['POST'])
@auth.login_required
@cross_origin()
def send_email():
data_in_json = request.get_json()
print(data_in_json)
return '', 204
@app.route('/accepted-list', methods=['GET'])
@auth.login_required
@cross_origin()
def get_accepted_contacts():
day = request.args.get('day')
print(day)
accepted_list = []
for accepted_contact in MONGO_STORE_MANAGER.get_all_accepted_appointments_for_day(day):
accepted_contact.type = str(accepted_contact.type)
accepted_list.append(accepted_contact)
return jsonify(accepted_list)
@app.route('/', methods=['POST'])
@auth.login_required
@cross_origin()
def post():
file_name = str(uuid.uuid4()) + ".wav"
with open(file_name, "wb") as vid:
vid.write(request.data)
speech_to_text = SpeechToText()
result = speech_to_text.to_text(file_name)
app.logger.info(result)
try:
os.remove(file_name)
except OSError:
app.logger.info(OSError)
return jsonify(result)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8000, debug=False)