-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
84 lines (63 loc) · 2.44 KB
/
Copy pathapp.py
File metadata and controls
84 lines (63 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
from flask import Flask, jsonify, request, abort
# from config import AWS_ACCESS_KEY, AWS_SECRET_KEY, REGION_NAME, BUCKET_NAME
from img_table_processing import one_table_processing
from img_final_result import result_timetable
from werkzeug.exceptions import BadRequest
from flask_cors import CORS
import boto3
app = Flask(__name__)
CORS(app)
# s3 = boto3.client(
# "s3",
# endpoint_url=None,
# region_name=REGION_NAME,
# aws_access_key_id=AWS_ACCESS_KEY,
# aws_secret_access_key=AWS_SECRET_KEY
# )
s3 = boto3.client("s3")
# Image Processing
@app.route('/teams/<int:teamId>/members/<int:memberId>', methods=['POST'])
def img_processing(teamId, memberId):
try:
response = request.get_json()
img_url = response.get('imageUrl')
one_table_result = one_table_processing.img_to_dataframe(img_url)
time_response = []
for col in list(one_table_result.columns):
time = {"dayOfWeek": col}
time["time"] = one_table_result[col].values.tolist()
time_response.append(time)
return jsonify({
'code': 200,
"divisorMinutes" : 30,
"times" : time_response
}), 200
except ZeroDivisionError:
return jsonify({'message': '에브리타임 시간표 이미지가 아닙니다', "code": 400}), 400
except BadRequest:
return jsonify({'message': 'Bad request', "code": 400}), 400
except Exception as e:
return jsonify({'message': str(e), "code": 500}), 500
# Result Image
@app.route('/teams/<int:teamId>/results', methods=['POST'])
def img_result(teamId):
try:
req_data = request.get_json()
teamName = req_data["teamName"]
resultImage = req_data['timeRequests']["times"]
final_result_filename = result_timetable.data_to_img(resultImage)
key = f"image/teams/{teamId}/{teamName}.jpeg"
with open(final_result_filename, 'rb') as f:
s3.put_object(
Bucket="mogong",
Body=f,
Key=key,
ContentType='image/jpeg'
)
return jsonify({'code': 200}), 200
except BadRequest:
return jsonify({'message': 'Bad request', "code": 400}), 400
except Exception as e:
return jsonify({'message': str(e), "code": 500}), 500
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)