67 lines
1.6 KiB
Python
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)
|