Uses notification on sending new message

Change-Id: If24fce8c10c85347094b3e02f382e507018ed2b0
This commit is contained in:
joha-asc 2011-07-22 16:01:27 +02:00
parent d928d0de4e
commit 0135f410d9

@ -6,6 +6,7 @@ import org.apache.wicket.RequestCycle;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.spring.injection.annot.SpringBean;
import se.su.dsv.scipro.data.controllers.NotificationController;
import se.su.dsv.scipro.data.dao.interfaces.PrivateMessageDao;
import se.su.dsv.scipro.data.dao.interfaces.ProjectDao;
import se.su.dsv.scipro.data.dao.interfaces.RecipientDao;
@ -16,6 +17,7 @@ import se.su.dsv.scipro.data.dataobjects.Recipient;
import se.su.dsv.scipro.data.dataobjects.User;
import se.su.dsv.scipro.data.dataobjects.UserSettings;
import se.su.dsv.scipro.jsonobjects.JsonPrivateMessage;
import se.su.dsv.scipro.message.pages.PrivateMessagesPage;
import se.su.dsv.scipro.util.PushApple;
import com.google.gson.Gson;
@ -38,12 +40,15 @@ public class JsonNewMessagePage extends WebPage {
@SpringBean
UserSettingsDao userSettingsDao;
@SpringBean
NotificationController notificationController;
public JsonNewMessagePage(final PageParameters pp) {
final Gson gson = new Gson();
final JsonObject jsonOutput = new JsonObject();
String loginString = pp.getString("json");
JsonPrivateMessage jsonPrivateMessage = gson.fromJson(loginString,
JsonPrivateMessage.class);
JsonPrivateMessage jsonPrivateMessage = gson
.fromJson(loginString, JsonPrivateMessage.class);
long userId = jsonPrivateMessage.userid;
String apikey = jsonPrivateMessage.apikey;
User user = userDao.load(userId);
@ -53,8 +58,7 @@ public class JsonNewMessagePage extends WebPage {
userSettings = new UserSettings(user);
userSettings = userSettingsDao.save(userSettings);
}
if (userSettings.getApiKey() != null
&& userSettings.getApiKey().equals(apikey)) {
if (userSettings.getApiKey() != null && userSettings.getApiKey().equals(apikey)) {
PrivateMessage pm = new PrivateMessage();
pm.setFromUser(user);
pm.setMessage(jsonPrivateMessage.message);
@ -66,6 +70,9 @@ public class JsonNewMessagePage extends WebPage {
rec.setToUser(selectedUser);
rec.setPrivateMessage(pm);
rec = recipientDao.save(rec);
notificationController.createNotificationForPrivateMessage(selectedUser,
jsonPrivateMessage.subject + "\n\n" + jsonPrivateMessage.message,
PrivateMessagesPage.getAbsoluteForPrivateMessageURL());
}
jsonOutput.addProperty("apikey", "success");
} else {
@ -79,8 +86,7 @@ public class JsonNewMessagePage extends WebPage {
public void respond(RequestCycle requestCycle) {
// Add JSON-encoded string to the response.
requestCycle.getResponse().setContentType(
"application/json; charset=UTF-8");
requestCycle.getResponse().setContentType("application/json; charset=UTF-8");
requestCycle.getResponse().setCharacterEncoding("UTF-8");
requestCycle.getResponse().write(gson.toJson(jsonOutput));
@ -91,12 +97,10 @@ public class JsonNewMessagePage extends WebPage {
User selectedUser = userDao.load(id);
if (userSettingsDao.getUserSettings(selectedUser) != null) {
PushApple
.sendPushMessage(
userSettingsDao.getUserSettings(selectedUser).getiPhoneId(),
recipientDao
.getNumberOfUnreadMessagesForUser(selectedUser),
"New message received");
PushApple.sendPushMessage(userSettingsDao.getUserSettings(selectedUser)
.getiPhoneId(),
recipientDao.getNumberOfUnreadMessagesForUser(selectedUser),
"New message received");
}
}