From 3bfbf0ad20bb5b8e4689fda287cd47738571d10d Mon Sep 17 00:00:00 2001
From: jessib <jessib@riseup.net>
Date: Tue, 21 Jan 2014 11:26:19 -0800
Subject: Small optimization to saving message when sending one month warnings.

---
 users/app/models/user.rb | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/users/app/models/user.rb b/users/app/models/user.rb
index 44237ff..c297ac8 100644
--- a/users/app/models/user.rb
+++ b/users/app/models/user.rb
@@ -126,19 +126,23 @@ class User < CouchRest::Model::Base
     # To determine warnings to send, need to get all users where one_month_warning_sent is not set, and where it was created greater than or equal to 1 month ago.
     # TODO: might want to further limit to enabled accounts, and, based on provider's service level configuration, for particular service levels.
     users_to_warn = User.by_created_at_and_one_month_warning_not_sent.endkey(Time.now-1.month)
+
     users_to_warn.each do |user|
+      # instead of loop could use something like:
+      # message.user_ids_to_show = users_to_warn.map(&:id)
+      # but would still need to loop through users to store one_month_warning_sent
+
       if !@message
         # create a message for today's date
         # only want to create once, and only if it will be used.
         @message = Message.new(:text => I18n.t(:payment_one_month_warning, :date_in_one_month => (Time.now+1.month).strftime("%Y-%d-%m")))
-        @message.save
       end
 
       @message.user_ids_to_show << user.id
-      @message.save
       user.one_month_warning_sent = true
       user.save
     end
+    @message.save if @message
 
   end
 
-- 
cgit v1.2.3