Remove with()
This commit is contained in:
		
							parent
							
								
									8cbf410faf
								
							
						
					
					
						commit
						2165c286ae
					
				| @ -196,84 +196,6 @@ where | ||||
|         Inbox::NotHandled(ctx, json, InboxError::NoMatch) | ||||
|     } | ||||
| 
 | ||||
|     /// Registers an handler on this Inbox.
 | ||||
|     pub fn with<A, V, M>(self, proxy: Option<&reqwest::Proxy>) -> Inbox<'a, C, E, R> | ||||
|     where | ||||
|         A: AsActor<&'a C> + FromId<C, Error = E>, | ||||
|         V: activitypub::Activity, | ||||
|         M: AsObject<A, V, &'a C, Error = E> + FromId<C, Error = E>, | ||||
|         M::Output: Into<R>, | ||||
|     { | ||||
|         if let Inbox::NotHandled(ctx, mut act, e) = self { | ||||
|             if serde_json::from_value::<V>(act.clone()).is_ok() { | ||||
|                 let act_clone = act.clone(); | ||||
|                 let act_id = match act_clone["id"].as_str() { | ||||
|                     Some(x) => x, | ||||
|                     None => return Inbox::NotHandled(ctx, act, InboxError::InvalidID), | ||||
|                 }; | ||||
| 
 | ||||
|                 // Get the actor ID
 | ||||
|                 let actor_id = match get_id(act["actor"].clone()) { | ||||
|                     Some(x) => x, | ||||
|                     None => return Inbox::NotHandled(ctx, act, InboxError::InvalidActor(None)), | ||||
|                 }; | ||||
| 
 | ||||
|                 if Self::is_spoofed_activity(&actor_id, &act) { | ||||
|                     return Inbox::NotHandled(ctx, act, InboxError::InvalidObject(None)); | ||||
|                 } | ||||
| 
 | ||||
|                 // Transform this actor to a model (see FromId for details about the from_id function)
 | ||||
|                 let actor = match A::from_id( | ||||
|                     ctx, | ||||
|                     &actor_id, | ||||
|                     serde_json::from_value(act["actor"].clone()).ok(), | ||||
|                     proxy, | ||||
|                 ) { | ||||
|                     Ok(a) => a, | ||||
|                     // If the actor was not found, go to the next handler
 | ||||
|                     Err((json, e)) => { | ||||
|                         if let Some(json) = json { | ||||
|                             act["actor"] = json; | ||||
|                         } | ||||
|                         return Inbox::NotHandled(ctx, act, InboxError::InvalidActor(Some(e))); | ||||
|                     } | ||||
|                 }; | ||||
| 
 | ||||
|                 // Same logic for "object"
 | ||||
|                 let obj_id = match get_id(act["object"].clone()) { | ||||
|                     Some(x) => x, | ||||
|                     None => return Inbox::NotHandled(ctx, act, InboxError::InvalidObject(None)), | ||||
|                 }; | ||||
|                 let obj = match M::from_id( | ||||
|                     ctx, | ||||
|                     &obj_id, | ||||
|                     serde_json::from_value(act["object"].clone()).ok(), | ||||
|                     proxy, | ||||
|                 ) { | ||||
|                     Ok(o) => o, | ||||
|                     Err((json, e)) => { | ||||
|                         if let Some(json) = json { | ||||
|                             act["object"] = json; | ||||
|                         } | ||||
|                         return Inbox::NotHandled(ctx, act, InboxError::InvalidObject(Some(e))); | ||||
|                     } | ||||
|                 }; | ||||
| 
 | ||||
|                 // Handle the activity
 | ||||
|                 match obj.activity(ctx, actor, act_id) { | ||||
|                     Ok(res) => Inbox::Handled(res.into()), | ||||
|                     Err(e) => Inbox::Failed(e), | ||||
|                 } | ||||
|             } else { | ||||
|                 // If the Activity type is not matching the expected one for
 | ||||
|                 // this handler, try with the next one.
 | ||||
|                 Inbox::NotHandled(ctx, act, e) | ||||
|             } | ||||
|         } else { | ||||
|             self | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /// Registers an handler on this Inbox.
 | ||||
|     pub fn with07<A, V, M>(self, proxy: Option<&reqwest::Proxy>) -> Self | ||||
|     where | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user