-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain_server.py
More file actions
115 lines (76 loc) · 2.66 KB
/
main_server.py
File metadata and controls
115 lines (76 loc) · 2.66 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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
from datetime import date
from flask import Flask, render_template, jsonify, request, url_for, make_response
from database import DataBase
from smeargle import read_smeargles, Smeargle
db = DataBase('database.db')
app = Flask(__name__)
app.config['SECRET_KEY'] = 'brleeskU'
gustav_session = '23r9q38pjn9fjn4fpfGO9araq4pSFfn34;nrwgpqo43gn43ASFASwa4AW4wGAYU^&JntbQ@F$GsdfRJRGFFwfawf4pqgLKFgn3wpqg'
@app.route('/index')
@app.route('/')
def index():
diet_data = db.select_all_diet()
today = date.today().isoformat()
return render_template('main.html', diet_data=diet_data, today=today)
### DIARY ###
@app.route('/diary')
def diary():
print(request.cookies)
return render_template('diary.html')
### DNA GAME ###
@app.route('/dna-game')
def dna_game():
return render_template('dna_game.html')
### SMEARGLE LIBRARY ###
@app.route('/smeargle-library')
def smeargle_library():
return render_template('smeargle_library.html')
### REST API ###
api = '/api/v0.0'
@app.route(api, methods=['GET'])
def get_endpoints():
locations = {
'getEndpoints': url_for('get_endpoints'),
'getDietData': url_for('get_diet_data'),
'insertDietData': url_for('insert_diet_data'),
'deleteDietData': url_for('delete_diet_data', rowid='rowid'),
'authenticate': url_for('authenticate'),
'smeargles': url_for('smeargles')
}
return jsonify(locations)
@app.route(f'{api}/diet', methods=['GET'])
def get_diet_data():
return jsonify(db.select_all_diet())
@app.route(f'{api}/diet', methods=['POST'])
def insert_diet_data():
db.insert_into_diet(
request.json['date'],
request.json['weight'],
request.json['cheat_day'],
request.json['comment'])
return 'TODO', 201
@app.route(f'{api}/diet/<rowid>', methods=['DELETE'])
def delete_diet_data(rowid):
db.delete_from_diet(rowid)
return 'TODO', 201
@app.route(f'{api}/authenticate', methods=['POST'])
def authenticate():
one_week = 7 * 24 * 60 * 60 # TODOs
response = make_response()
response.set_cookie('session', gustav_session, one_week, secure=True)
return response
_smeargles: list[Smeargle] = read_smeargles('pokemon_moves.json')
@app.route(f'{api}/smeargles', methods=['GET'])
def smeargles():
smeargles_json = []
for i, smeargle in enumerate(_smeargles):
smeargle_json = {
'nickname': str(smeargle),
'number': f'{i + 1}/{len(_smeargles)}',
'moves': smeargle.moves
}
smeargles_json.append(smeargle_json)
return jsonify(smeargles_json)
### RUN TEST SERVER ###
if __name__ == '__main__':
app.run()