-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
59 lines (39 loc) · 1.65 KB
/
app.py
File metadata and controls
59 lines (39 loc) · 1.65 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
from flask import Flask
from flask_migrate import Migrate
from flask_restful import Api
from Config import Config
from extensions import db, jwt
from resources.workout import WorkoutListResource, WorkoutResource, WorkoutPublishResource
from resources.token import TokenResource, RefreshResource, RevokeResource, black_list
from resources.user import UserListResource, UserResource, MeResource, UserWorkoutListResource, UserActivateResource
def create_app():
app = Flask(__name__)
db.init_app(app)
app.config.from_object(Config)
register_extensions(app)
register_resources(app)
return app
def register_extensions(app):
db.init_app(app)
migrate = Migrate(app, db)
jwt.init_app(app)
@jwt.token_in_blacklist_loader
def check_if_token_in_blacklist(decrypted_token):
jti = decrypted_token['jti']
return jti in black_list
def register_resources(app):
api = Api(app)
api.add_resource(UserListResource, '/users')
api.add_resource(WorkoutListResource, '/workouts')
api.add_resource(WorkoutResource, '/workouts/<int:workout_id>')
api.add_resource(WorkoutPublishResource, '/workouts/<int:workout_id>/publish')
api.add_resource(UserResource, '/users/<string:username>')
api.add_resource(UserWorkoutListResource, '/users/<string:username>/workouts')
api.add_resource(MeResource, '/me')
api.add_resource(UserActivateResource, '/users/activate/<string:token>')
api.add_resource(TokenResource, '/token')
api.add_resource(RefreshResource, '/refresh')
api.add_resource(RevokeResource, '/revoke')
if __name__ == '__main__':
app = create_app()
app.run(port=5050, debug=True)