package onlinefrontlines.feedback.web;
import onlinefrontlines.web.*;
import onlinefrontlines.feedback.Feedback;
import onlinefrontlines.feedback.FeedbackDAO;
/**
* This adds reply to feedback to the database
*
* @author jorrit
*
* Copyright (C) 2009-2013 Jorrit Rouwe
*
* This file is part of Online Frontlines.
*
* Online Frontlines is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Online Frontlines is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Online Frontlines. If not, see <http://www.gnu.org/licenses/>.
*/
public class FeedbackReplyAction extends WebAction
{
/**
* Feedback id
*/
public int feedbackId;
/**
* Reply to the feedback
*/
public String reply;
/**
* Output userId value for redirect
*/
public int userId;
/**
* Execute the action
*/
protected WebView execute() throws Exception
{
// Validate reply
if (reply == null || reply.isEmpty())
{
addFieldError("reply", getText("replyRequired"));
return getInputView();
}
// Store user id for redirect to feedback page
userId = user.id;
// Get feedback
Feedback feedback = FeedbackDAO.find(feedbackId);
if (feedback == null)
{
addActionError(getText("feedbackDoesNotExist"));
return getErrorView();
}
// Check user
if (user.id != feedback.opponentUserId)
{
addActionError(getText("cannotReplyToFeedback"));
return getErrorView();
}
// Check if there is already a reply
if (feedback.reply != null)
{
addActionError(getText("alreadyRepliedToFeedback"));
return getErrorView();
}
// Update feedback
feedback.reply = reply;
FeedbackDAO.update(feedback);
return new WebViewRedirect("FeedbackList.do?userId=" + userId);
}
}