From c6c68262c5f829ef40dc139ec371e536a6baa3cc Mon Sep 17 00:00:00 2001 From: lukasgol Date: Wed, 11 Feb 2015 23:29:16 +0100 Subject: [PATCH] some events --- .../controllers/EventController.java | 21 +++++---- .../java/application/events/EventManager.java | 47 +++++++++++++++++++ 2 files changed, 59 insertions(+), 9 deletions(-) diff --git a/src/main/java/application/controllers/EventController.java b/src/main/java/application/controllers/EventController.java index 858717f..6efa83b 100644 --- a/src/main/java/application/controllers/EventController.java +++ b/src/main/java/application/controllers/EventController.java @@ -38,14 +38,11 @@ public class EventController { EventManager eventManager; - @RequestMapping(value = "/{doorId}/{userId}") + @RequestMapping(value = "notifyServer") @ResponseBody public BaseResponse entryEventTrigger(@RequestParam("userId") long userId ,@RequestParam("doorId") long doorId) throws JSONException { - for(EntryEvent e: entryEventRepository.findAll()){ - if(e.getWho()==userId&&e.getDoor()==doorId) - eventManager.sendNotification(e); - } + eventManager.processEvent(userId, doorId); return new BaseResponse().init(Constants.SUCCESS_TRUE); } @@ -82,8 +79,8 @@ public class EventController { @RequestMapping(value = "/MainDoorEntry/add") @ResponseBody - public BaseResponse addMainDoorEntry(@RequestParam long doorId ) throws JSONException { - mainDoorEntryEventRepository.save(new MainDoorEntryEvent(doorId)); + public BaseResponse addMainDoorEntry(@RequestParam long who ) throws JSONException { + mainDoorEntryEventRepository.save(new MainDoorEntryEvent(who)); return new BaseResponse().init(Constants.SUCCESS_TRUE); } @@ -111,7 +108,9 @@ public class EventController { @RequestMapping(value = "/DoorLockedEntry/add") @ResponseBody public BaseResponse addDoorLockedEntry(@RequestParam long doorId, @RequestParam String why) throws JSONException { - doorLockedEventRepository.save(new DoorLockedEvent(doorId,why)); + DoorLockedEvent ev = new DoorLockedEvent(doorId,why); + doorLockedEventRepository.save(ev); + eventManager.doorLockedEvent(ev); return new BaseResponse().init(Constants.SUCCESS_TRUE); } @@ -130,7 +129,11 @@ public class EventController { @RequestMapping(value = "/DoorLockedEntry/remove/{id}") @ResponseBody public BaseResponse removeDoorLockedEntry(@PathVariable("id") long id) throws JSONException { - doorLockedEventRepository.delete(id); + DoorLockedEvent event = doorLockedEventRepository.findOne(id); + if (event != null) { + eventManager.doorUnlockedEvent(event); + doorLockedEventRepository.delete(id); + } return new BaseResponse().init(Constants.SUCCESS_TRUE); } diff --git a/src/main/java/application/events/EventManager.java b/src/main/java/application/events/EventManager.java index 5f5305f..75d3c01 100644 --- a/src/main/java/application/events/EventManager.java +++ b/src/main/java/application/events/EventManager.java @@ -1,7 +1,13 @@ package application.events; +import application.events.impl.DoorLockedEvent; +import application.events.impl.EntryEvent; +import application.events.impl.MainDoorEntryEvent; +import application.repositories.*; import org.reflections.Reflections; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.RequestParam; import java.util.HashSet; import java.util.Set; @@ -12,6 +18,23 @@ import java.util.Set; @Component public class EventManager { + @Autowired + MainDoorEntryEventRepository mainDoorEntryEventRepository; + + @Autowired + DoorLockedEventRepository doorLockedEventRepository; + + + @Autowired + EntryEventRepository entryEventRepository; + + @Autowired + UserRepository userRepository; + + @Autowired + DoorRepository doorRepository; + + Set> eventClassSet; Set eventsSet; public EventManager() { @@ -54,4 +77,28 @@ public class EventManager { public void sendNotification(EventObject eventObject){ System.out.print(eventObject.createMessage()); } + + public void processEvent(long userId , long doorId){ + if(doorId==1){ + for(MainDoorEntryEvent e: mainDoorEntryEventRepository.findAll()){ + if(e.getWho()==userId){ + sendNotification(e); + } + } + }else { + for (EntryEvent e : entryEventRepository.findAll()) { + if (e.getWho() == userId && e.getDoor() == doorId) + sendNotification(e); + } + } + } + + public void doorLockedEvent(DoorLockedEvent doorLockedEvent){ + System.out.print("lala"); + + } + public void doorUnlockedEvent(DoorLockedEvent doorLockedEvent){ + System.out.print("lala"); + + } }