| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -222,13 +222,12 @@ use crate::db::{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    DbConn, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					}; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					pub struct Headers { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    pub host: String, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    pub device: Device, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    pub user: User, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					pub struct Host { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    pub host: String | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					impl<'a, 'r> FromRequest<'a, 'r> for Headers { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					impl<'a, 'r> FromRequest<'a, 'r> for Host { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    type Error = &'static str; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    fn from_request(request: &'a Request<'r>) -> Outcome<Self, Self::Error> { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -262,6 +261,28 @@ impl<'a, 'r> FromRequest<'a, 'r> for Headers { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            format!("{}://{}", protocol, host) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Outcome::Success(Host { host }) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					pub struct Headers { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    pub host: String, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    pub device: Device, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    pub user: User, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					impl<'a, 'r> FromRequest<'a, 'r> for Headers { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    type Error = &'static str; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    fn from_request(request: &'a Request<'r>) -> Outcome<Self, Self::Error> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let headers = request.headers(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let host = match Host::from_request(request) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            Outcome::Forward(_) => return Outcome::Forward(()), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            Outcome::Failure(f) => return Outcome::Failure(f), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            Outcome::Success(host) => host.host, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        // Get access_token
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let access_token: &str = match headers.get_one("Authorization") { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            Some(a) => match a.rsplit("Bearer ").next() { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |