diff --git a/src/main/java/se/su/dsv/scipro/json/pages/JsonNewMessagePage.java b/src/main/java/se/su/dsv/scipro/json/pages/JsonNewMessagePage.java index 06f5f433a9..5835f59c5d 100644 --- a/src/main/java/se/su/dsv/scipro/json/pages/JsonNewMessagePage.java +++ b/src/main/java/se/su/dsv/scipro/json/pages/JsonNewMessagePage.java @@ -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"); } }