def schedule(): # Read from rquest text = request.args.get('value') # Deny empty values if not text or not text.strip(): return jsonify({'message': 'Empty value to translate'}), 422 # Decode text PYTHON_VERSION = sys.version_info[0] if PYTHON_VERSION == 3: from urllib.parse import urlparse decoded = urlparse.unquote(text) else: from urlparse import urlparse decoded = urlparse.parse_qs(text) # Translate it uid = service_schedule_translation(decoded) # Store record in database translation = Translation(uid, decoded, None) db_store_schedule(translation) # Return JSON structure return jsonify({'uid': uid})
def api(request, id_number): # pylint: disable=unused-argument if check_if_valid_token(request): token = urlparse.unquote(request.META['HTTP_AUTHORIZATION']) user_id = extrapolate_user(token) data = serializers.serialize("json", User.objects.filter(user_id=user_id)) return HttpResponse(data, content_type='application/json') else: return HttpResponse('Unauthorized', status=401)
def test(): if not APP_DEBUG: return jsonify({"page": "test"}) res = "<h2>Test Page (DEBUG):</h2>" for rule in app.url_map.iter_rules(): options = {} for arg in rule.arguments: options[arg] = "[{0}]".format(arg) methods = ','.join(rule.methods) url = url_for(rule.endpoint, **options) res += urlparse.unquote("{0:50s} {1:20s} <a href='{2}'>{2}</a><br/>".format(rule.endpoint, methods, url)) return res
def api_index(request): if check_if_valid_token(request): try: token = urlparse.unquote(request.META['HTTP_AUTHORIZATION']) user_id = extrapolate_user(token) user = User.objects.get(user_id=user_id) if user.is_admin: data = serializers.serialize("json", User.objects.all()) return HttpResponse(data, content_type='application/json') else: data = serializers.serialize( "json", User.objects.filter(user_id=user_id)) return HttpResponse(data, content_type='application/json') except User.DoesNotExist: return HttpResponse("null", content_type='application/json') else: return HttpResponse('Unauthorized', status=401)
def check_if_valid_token(request): if 'HTTP_AUTHORIZATION' not in request.META: return False else: token = urlparse.unquote(request.META['HTTP_AUTHORIZATION']) regex = re.compile("(.*?)-(.*)") split_token = token.split('=')[1] regex_groups = regex.search(split_token) if regex_groups.group(1): group_id = regex_groups.group(1) else: return False if regex_groups.group(2): group_hash = regex_groups.group(2) else: return False sha = SHA.new() sha.update(ACCESS_TOKEN_SALT + ":" + str(group_id)) return group_hash == sha.hexdigest()