blob: 8d0cf7f45fbf7953ef864ed659d54486553cea1b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# coding=utf-8
import os
from functools import wraps
from flask import request
from pysite.constants import ErrorCodes
def valid_api_key(f):
"""
Decorator to check if X-API-Key is valid.
Should only be applied to functions on APIView routes.
"""
@wraps(f)
def has_valid_api_key(self, *args, **kwargs):
if not request.headers.get("X-API-Key") == os.environ.get("API_KEY"):
return self.error(ErrorCodes.invalid_api_key)
return f(self, *args, **kwargs)
return has_valid_api_key
|