| 
					
				 | 
			
			
				@@ -17,7 +17,7 @@ def validate_app_token(view=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         def decorated(*args, **kwargs): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             api_token = validate_and_get_api_token('app') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            app_model = db.session.query(App).get(api_token.app_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            app_model = db.session.query(App).filter(App.id == api_token.app_id).first() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if not app_model: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 raise NotFound() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -44,7 +44,7 @@ def validate_dataset_token(view=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         def decorated(*args, **kwargs): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             api_token = validate_and_get_api_token('dataset') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dataset = db.session.query(Dataset).get(api_token.dataset_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dataset = db.session.query(Dataset).filter(Dataset.id == api_token.dataset_id).first() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if not dataset: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 raise NotFound() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -64,14 +64,14 @@ def validate_and_get_api_token(scope=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Validate and get API token. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     auth_header = request.headers.get('Authorization') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if auth_header is None: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        raise Unauthorized() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if auth_header is None or ' ' not in auth_header: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        raise Unauthorized("Authorization header must be provided and start with 'Bearer'") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     auth_scheme, auth_token = auth_header.split(None, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     auth_scheme = auth_scheme.lower() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if auth_scheme != 'bearer': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        raise Unauthorized() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        raise Unauthorized("Authorization scheme must be 'Bearer'") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     api_token = db.session.query(ApiToken).filter( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ApiToken.token == auth_token, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -79,7 +79,7 @@ def validate_and_get_api_token(scope=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ).first() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if not api_token: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        raise Unauthorized() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        raise Unauthorized("Access token is invalid") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     api_token.last_used_at = datetime.utcnow() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     db.session.commit() 
			 |