-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
67 lines (48 loc) · 1.51 KB
/
main.py
File metadata and controls
67 lines (48 loc) · 1.51 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
from flask import Flask, jsonify
import os
from apscheduler.schedulers.background import BackgroundScheduler
from jobs_api import sync
from sudoswap import SudoSwapService
from flask_cors import CORS
from models import migrate
# Schedule the sync job to every minute
sched = BackgroundScheduler(daemon=True)
sched.add_job(sync, 'cron', hour=1)
sched.start()
app = Flask(__name__)
sudoswap = SudoSwapService()
CORS(app)
@app.route('/')
def health():
return jsonify({"Status": "OK."})
@app.route('/collections/<collection_id>')
def all_collections(collection_id):
res = {}
collection = sudoswap.get_collection(collection_id)
res["collection"] = dict(collection)
pools_rows = sudoswap.get_pools_for_collection(collection_id)
pools = [dict(row) for row in pools_rows]
res["pools"] = pools
timeseries_rows = sudoswap.get_timeseries(collection_id)
timeseries = [dict(row) for row in timeseries_rows]
res["timeseries"] = timeseries
return jsonify(res)
@app.route('/collections')
def collections():
result_set = sudoswap.get_all_collections()
res = [dict(row) for row in result_set]
return jsonify(res)
@app.route('/refresh')
def refresh():
sync()
return jsonify({"Status": "OK."})
@app.route('/pools')
def pools():
result_set = sudoswap.get_pools()
res = [dict(row) for row in result_set]
return jsonify(res)
if __name__ == '__main__':
migrate()
sync()
# Trigger manually the sync job
app.run(debug=True, port=os.getenv("PORT", default=5000))