notifications: fix notification generation for non-create activities
in 300d94c62, an Object.normalize() call was introduced.  calling Object.normalize()
on an activity with a non-object URI (say, a user) causes Really Bad Things to happen.
so don't do that.
			
			
This commit is contained in:
		
							parent
							
								
									ddd04d1c52
								
							
						
					
					
						commit
						6426301407
					
				
					 1 changed files with 8 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -127,8 +127,7 @@ def dismiss(%{id: user_id} = _user, id) do
 | 
			
		|||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def create_notifications(%Activity{data: %{"to" => _, "type" => type}} = activity)
 | 
			
		||||
      when type in ["Create", "Like", "Announce", "Follow"] do
 | 
			
		||||
  def create_notifications(%Activity{data: %{"to" => _, "type" => "Create"}} = activity) do
 | 
			
		||||
    object = Object.normalize(activity)
 | 
			
		||||
 | 
			
		||||
    unless object && object.data["type"] == "Answer" do
 | 
			
		||||
| 
						 | 
				
			
			@ -140,6 +139,13 @@ def create_notifications(%Activity{data: %{"to" => _, "type" => type}} = activit
 | 
			
		|||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def create_notifications(%Activity{data: %{"to" => _, "type" => type}} = activity)
 | 
			
		||||
      when type in ["Like", "Announce", "Follow"] do
 | 
			
		||||
    users = get_notified_from_activity(activity)
 | 
			
		||||
    notifications = Enum.map(users, fn user -> create_notification(activity, user) end)
 | 
			
		||||
    {:ok, notifications}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def create_notifications(_), do: {:ok, []}
 | 
			
		||||
 | 
			
		||||
  # TODO move to sql, too.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue