001/* 002 * Stallion Core: A Modern Web Framework 003 * 004 * Copyright (C) 2015 - 2016 Stallion Software LLC. 005 * 006 * This program is free software: you can redistribute it and/or modify it under the terms of the 007 * GNU General Public License as published by the Free Software Foundation, either version 2 of 008 * the License, or (at your option) any later version. This program is distributed in the hope that 009 * it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of 010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 011 * License for more details. You should have received a copy of the GNU General Public License 012 * along with this program. If not, see <http://www.gnu.org/licenses/gpl-2.0.html>. 013 * 014 * 015 * 016 */ 017 018package io.stallion.forms; 019 020import io.stallion.asyncTasks.AsyncCoordinator; 021import io.stallion.asyncTasks.AsyncTaskHandlerBase; 022import io.stallion.dataAccess.Model; 023import io.stallion.services.Log; 024import io.stallion.settings.Settings; 025import io.stallion.users.User; 026import io.stallion.users.UserController; 027 028import static io.stallion.utils.Literals.*; 029 030 031public class SimpleFormSubmissionEmailTask extends AsyncTaskHandlerBase { 032 private Long submissionId; 033 034 public static void enqueue(SimpleFormSubmission submission) { 035 SimpleFormSubmissionEmailTask handler = new SimpleFormSubmissionEmailTask(); 036 handler.setSubmissionId(submission.getId()); 037 AsyncCoordinator.instance().enqueue(handler, "new-simple-submission-email-" + submission.getId(), 0); 038 } 039 040 041 public void process() { 042 SimpleFormSubmission submission = SimpleFormSubmissionController.instance().forId(submissionId); 043 if (empty(submission.getEmail())) { 044 return; 045 } 046 Log.info("Mail submission to to moderators commentId={0} moderators={1}", submission.getId(), Settings.instance().getEmail().getAdminEmails()); 047 for(String email: Settings.instance().getEmail().getAdminEmails()) { 048 Model m = null; 049 if (UserController.instance()!= null) { 050 m = UserController.instance().forUniqueKey("email", email); 051 } 052 User user; 053 if (m == null) { 054 user = new User().setEmail(email); 055 } else { 056 user = (User)m; 057 } 058 SimpleFormSubmissionEmailer emailer = new SimpleFormSubmissionEmailer(user, submission); 059 Log.info("Send moderation email. submission={0} moderator={0}", submission.getId(), user.getEmail()); 060 emailer.sendEmail(); 061 } 062 } 063 064 public Long getSubmissionId() { 065 return submissionId; 066 } 067 068 public void setSubmissionId(Long submissionId) { 069 this.submissionId = submissionId; 070 } 071} 072 073