]> git.openstreetmap.org Git - rails.git/blobdiff - app/mailers/notifier.rb
Merge remote-tracking branch 'upstream/pull/2834'
[rails.git] / app / mailers / notifier.rb
index c60dff84b9f0265cfc66137cb5cac3271529e324..3e0ba446d59b25d3e2eae72daecbb114eb1dca6d 100644 (file)
@@ -106,17 +106,16 @@ class Notifier < ApplicationMailer
     end
   end
 
-  def friend_notification(friend)
-    with_recipient_locale friend.befriendee do
-      @friend = friend
-      @viewurl = user_url(@friend.befriender)
-      @friendurl = url_for(:controller => "users", :action => "make_friend",
-                           :display_name => @friend.befriender.display_name)
-      @author = @friend.befriender.display_name
-
-      attach_user_avatar(@friend.befriender)
-      mail :to => friend.befriendee.email,
-           :subject => I18n.t("notifier.friend_notification.subject", :user => friend.befriender.display_name)
+  def friendship_notification(friendship)
+    with_recipient_locale friendship.befriendee do
+      @friendship = friendship
+      @viewurl = user_url(@friendship.befriender)
+      @friendurl = make_friend_url(@friendship.befriender)
+      @author = @friendship.befriender.display_name
+
+      attach_user_avatar(@friendship.befriender)
+      mail :to => friendship.befriendee.email,
+           :subject => I18n.t("notifier.friendship_notification.subject", :user => friendship.befriender.display_name)
     end
   end
 
@@ -192,16 +191,19 @@ class Notifier < ApplicationMailer
   def user_avatar_file(user)
     avatar = user&.avatar
     if avatar&.attached?
-      avatar.variant(:resize => "50x50>").blob.download
+      if avatar.variable?
+        image = avatar.variant(:resize => "50x50>").processed
+        image.service.download(image.key)
+      else
+        avatar.blob.download
+      end
     else
       File.read(Rails.root.join("app/assets/images/avatar_small.png"))
     end
   end
 
-  def with_recipient_locale(recipient)
-    I18n.with_locale Locale.available.preferred(recipient.preferred_languages) do
-      yield
-    end
+  def with_recipient_locale(recipient, &block)
+    I18n.with_locale(Locale.available.preferred(recipient.preferred_languages), &block)
   end
 
   def from_address(name, type, id, digest, user_id = nil)