diff --git a/NFCServer.iml b/NFCServer.iml index 2b9e840..4195ea1 100644 --- a/NFCServer.iml +++ b/NFCServer.iml @@ -4,28 +4,18 @@ - file://$MODULE_DIR$/src/main/java/application/Config.java file://$MODULE_DIR$/src/main/resources/Spring-Module.xml - - - - - - - - - - + @@ -44,69 +34,71 @@ + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - + - + - - - - - + - - + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 930d2b6..356c133 100644 --- a/build.gradle +++ b/build.gradle @@ -38,7 +38,6 @@ dependencies { compile("org.springframework.boot:spring-boot-starter-web") testCompile("org.springframework.boot:spring-boot-starter-test") providedRuntime("javax.servlet:jstl") - compile 'com.google.code.gson:gson:2.2.4' compile "org.mockito:mockito-core:1.+" compile "org.reflections:reflections:0.9.9-RC1" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index d5c591c..3d0dee6 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 52e38f2..d7adf46 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Apr 02 00:24:51 CEST 2014 +#Mon Dec 15 22:59:12 CET 2014 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=http\://services.gradle.org/distributions/gradle-1.9-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-bin.zip diff --git a/src/main/java/application/Config.java b/src/main/java/application/Config.java index 2691981..4116782 100644 --- a/src/main/java/application/Config.java +++ b/src/main/java/application/Config.java @@ -1,8 +1,6 @@ package application; -import application.events.EventObject; import application.events.impl.EntryEvent; -import application.events.impl.EventObjectImpl; import application.model.User; import application.repositories.*; import application.utils.Initializer; @@ -17,6 +15,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView; @@ -29,6 +28,7 @@ import org.springframework.web.servlet.view.JstlView; @EnableAutoConfiguration @ImportResource("Spring-Module.xml") @EnableScheduling +@EnableWebMvc public class Config extends SpringBootServletInitializer { @@ -43,13 +43,13 @@ public class Config extends SpringBootServletInitializer { UserRepository userRepository = context.getBean(UserRepository.class); RoleRepository roleRepository = context.getBean(RoleRepository.class); DoorRepository doorRepository = context.getBean(DoorRepository.class); - EventRepositoriy eventRepositoriy = context.getBean(EventRepositoriy.class); + EntryEventRepository entryEventRepository = context.getBean(EntryEventRepository.class); HistoryEntryRepository historyEntryRepository = context.getBean(HistoryEntryRepository.class); new Initializer(roleRepository, userRepository, doorRepository, historyEntryRepository).init(); User user =new User("aa","bb","cc","dd"); - eventRepositoriy.save(new EntryEvent(1,1,2)); - eventRepositoriy.save(new EntryEvent(1,2,2)); - eventRepositoriy.save(new EntryEvent(2,1,2)); + entryEventRepository.save(new EntryEvent(1,1,2)); + entryEventRepository.save(new EntryEvent(1,2,2)); + entryEventRepository.save(new EntryEvent(2,1,2)); } diff --git a/src/main/java/application/Notification/NotificationMessage.java b/src/main/java/application/Notification/NotificationMessage.java new file mode 100644 index 0000000..bc3c406 --- /dev/null +++ b/src/main/java/application/Notification/NotificationMessage.java @@ -0,0 +1,30 @@ +package application.Notification; + +/** + * Created by lukasgol on 16.12.14. + */ +public class NotificationMessage { + + String title; + String msg; + + public NotificationMessage(String msg) { + this.msg = msg; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } +} diff --git a/src/main/java/application/Notification/NotificationRequest.java b/src/main/java/application/Notification/NotificationRequest.java new file mode 100644 index 0000000..858bd43 --- /dev/null +++ b/src/main/java/application/Notification/NotificationRequest.java @@ -0,0 +1,35 @@ +package application.Notification; + +/** + * Created by lukasgol on 16.12.14. + */ +public class NotificationRequest { + String registration_ids; + String data; + +/* public NotificationRequest(String registration_ids, String data) { + this.registration_ids = "[\""+registration_ids+"\"]"; + this.data = "{\"message\" : \""+data+"\"}"; + }*/ + + public NotificationRequest(String registration_ids, String data) { + this.registration_ids = registration_ids; + this.data = data; + } + + public String getRegistration_ids() { + return registration_ids; + } + + public void setRegistration_ids(String registration_ids) { + this.registration_ids = registration_ids; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } +} diff --git a/src/main/java/application/Notification/NotificationResponse.java b/src/main/java/application/Notification/NotificationResponse.java new file mode 100644 index 0000000..cd541bc --- /dev/null +++ b/src/main/java/application/Notification/NotificationResponse.java @@ -0,0 +1,61 @@ +package application.Notification; + +/** + * Created by lukasgol on 16.12.14. + */ +public class NotificationResponse { + String multicast_id; + String success; + String failure; + String canonical_ids; + String results; + + public String getMulticast_id() { + return multicast_id; + } + + public void setMulticast_id(String multicast_id) { + this.multicast_id = multicast_id; + } + + public String getFailure() { + return failure; + } + + public void setFailure(String failure) { + this.failure = failure; + } + + public String getCanonical_ids() { + return canonical_ids; + } + + public void setCanonical_ids(String canonical_ids) { + this.canonical_ids = canonical_ids; + } + + public String getSuccess() { + return success; + } + + public void setSuccess(String success) { + this.success = success; + } + + public String getResults() { + return results; + } + + public void setResults(String results) { + this.results = results; + } + + public NotificationResponse(String multicast_id, String success, String failure, String canonical_ids, String results) { + this.multicast_id = multicast_id; + this.success = success; + this.failure = failure; + this.canonical_ids = canonical_ids; + this.results = results; + } +} + diff --git a/src/main/java/application/controllers/EventController.java b/src/main/java/application/controllers/EventController.java index 8ace4c8..858717f 100644 --- a/src/main/java/application/controllers/EventController.java +++ b/src/main/java/application/controllers/EventController.java @@ -2,24 +2,15 @@ package application.controllers; import application.Constants; import application.events.EventManager; -import application.events.EventObject; +import application.events.impl.DoorLockedEvent; import application.events.impl.EntryEvent; -import application.model.Door; -import application.model.User; +import application.events.impl.MainDoorEntryEvent; import application.network.response.BaseResponse; -import application.repositories.DoorRepository; -import application.repositories.EventRepositoriy; -import application.repositories.UserRepository; +import application.repositories.*; import org.json.JSONException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -import java.util.ArrayList; -import java.util.List; +import org.springframework.web.bind.annotation.*; /** * Created by lukasgol on 10.02.15. @@ -29,7 +20,13 @@ import java.util.List; public class EventController { @Autowired - EventRepositoriy eventRepositoriy; + EntryEventRepository entryEventRepository; + + @Autowired + MainDoorEntryEventRepository mainDoorEntryEventRepository; + + @Autowired + DoorLockedEventRepository doorLockedEventRepository; @Autowired UserRepository userRepository; @@ -41,28 +38,100 @@ public class EventController { EventManager eventManager; - @RequestMapping(value = "/eventEntry") + @RequestMapping(value = "/{doorId}/{userId}") @ResponseBody - public BaseResponse entryEventTrigger(@RequestBody long userId, @RequestBody long doorId) throws JSONException { + public BaseResponse entryEventTrigger(@RequestParam("userId") long userId ,@RequestParam("doorId") long doorId) throws JSONException { - for(EntryEvent e: eventRepositoriy.findAll()){ + for(EntryEvent e: entryEventRepository.findAll()){ if(e.getWho()==userId&&e.getDoor()==doorId) eventManager.sendNotification(e); } return new BaseResponse().init(Constants.SUCCESS_TRUE); } + /* Entry event*/ + @RequestMapping(value = "/eventEntry/add") @ResponseBody - public BaseResponse addEventTrigger(@RequestBody long userId, @RequestBody long doorId,@RequestBody long who) throws JSONException { - eventRepositoriy.save(new EntryEvent(doorId,who,userId)); + public BaseResponse addEntry(@RequestParam long userId, @RequestParam long doorId,@RequestParam long who) throws JSONException { + entryEventRepository.save(new EntryEvent(doorId,who,userId)); return new BaseResponse().init(Constants.SUCCESS_TRUE); } @RequestMapping(value = "/eventEntry/getAll") @ResponseBody - public Iterable getAll() throws JSONException { - Iterable a =eventRepositoriy.findAll(); - return eventRepositoriy.findAll(); + public Iterable getAllEntry() throws JSONException { + Iterable a = entryEventRepository.findAll(); + return entryEventRepository.findAll(); } + + @RequestMapping(value = "/eventEntry/get/{id}") + @ResponseBody + public EntryEvent getEntry(@PathVariable("id") long id) throws JSONException { + return entryEventRepository.findOne(id); + } + + @RequestMapping(value = "/eventEntry/remove/{id}") + @ResponseBody + public BaseResponse removeEntry(@PathVariable("id") long id) throws JSONException { + entryEventRepository.delete(id); + return new BaseResponse().init(Constants.SUCCESS_TRUE); + } + + /*Main door event*/ + + @RequestMapping(value = "/MainDoorEntry/add") + @ResponseBody + public BaseResponse addMainDoorEntry(@RequestParam long doorId ) throws JSONException { + mainDoorEntryEventRepository.save(new MainDoorEntryEvent(doorId)); + return new BaseResponse().init(Constants.SUCCESS_TRUE); + } + + @RequestMapping(value = "/MainDoorEntry/getAll") + @ResponseBody + public Iterable getAllMainDoorEntry() throws JSONException { + return mainDoorEntryEventRepository.findAll(); + } + + @RequestMapping(value = "/MainDoorEntry/get/{id}") + @ResponseBody + public MainDoorEntryEvent getMainDoorEntry(@PathVariable("id") long id) throws JSONException { + return mainDoorEntryEventRepository.findOne(id); + } + + @RequestMapping(value = "/MainDoorEntry/remove/{id}") + @ResponseBody + public BaseResponse removeMainDoorEntry(@PathVariable("id") long id) throws JSONException { + mainDoorEntryEventRepository.delete(id); + return new BaseResponse().init(Constants.SUCCESS_TRUE); + } + + /*locked door event*/ + + @RequestMapping(value = "/DoorLockedEntry/add") + @ResponseBody + public BaseResponse addDoorLockedEntry(@RequestParam long doorId, @RequestParam String why) throws JSONException { + doorLockedEventRepository.save(new DoorLockedEvent(doorId,why)); + return new BaseResponse().init(Constants.SUCCESS_TRUE); + } + + @RequestMapping(value = "/DoorLockedEntry/getAll") + @ResponseBody + public Iterable getAllDoorLockedEntry() throws JSONException { + return doorLockedEventRepository.findAll(); + } + + @RequestMapping(value = "/DoorLockedEntry/get/{id}") + @ResponseBody + public DoorLockedEvent getDoorLockedEntry(@PathVariable("id") long id) throws JSONException { + return doorLockedEventRepository.findOne(id); + } + + @RequestMapping(value = "/DoorLockedEntry/remove/{id}") + @ResponseBody + public BaseResponse removeDoorLockedEntry(@PathVariable("id") long id) throws JSONException { + 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 3570a35..5f5305f 100644 --- a/src/main/java/application/events/EventManager.java +++ b/src/main/java/application/events/EventManager.java @@ -15,8 +15,8 @@ public class EventManager { Set> eventClassSet; Set eventsSet; public EventManager() { - eventClassSet = findEventClasses(); - eventsSet = instantiateEvents(eventClassSet); +/* eventClassSet = findEventClasses(); + eventsSet = instantiateEvents(eventClassSet);*/ System.out.println("Class EventManagerCreated"); } diff --git a/src/main/java/application/events/impl/DoorLockedEvent.java b/src/main/java/application/events/impl/DoorLockedEvent.java new file mode 100644 index 0000000..5e7a0a8 --- /dev/null +++ b/src/main/java/application/events/impl/DoorLockedEvent.java @@ -0,0 +1,73 @@ +package application.events.impl; + +import application.events.EventObject; + +import javax.persistence.*; + +/** + * Created by lukasgol on 11.02.15. + */ +@Entity +public class DoorLockedEvent implements EventObject { + + @Override + public void validEvent() { + + } + + @Override + public void handleEvent() { + + } + + @Override + public boolean isValid() { + return false; + } + + @Override + public String createMessage() { + return null; + } + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + @Basic + private Long user; + + @Basic String reason; + + public Long getUser() { + return user; + } + + public void setUser(Long user) { + this.user = user; + } + + public DoorLockedEvent(Long user, String reason) { + this.user = user; + this.reason = reason; + } + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public DoorLockedEvent() { + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } +} diff --git a/src/main/java/application/events/impl/EntryEvent.java b/src/main/java/application/events/impl/EntryEvent.java index b48161e..bd6c8d2 100644 --- a/src/main/java/application/events/impl/EntryEvent.java +++ b/src/main/java/application/events/impl/EntryEvent.java @@ -19,7 +19,7 @@ public class EntryEvent implements EventObject { @Id @GeneratedValue(strategy = GenerationType.AUTO) - private Long entryEventId; + private Long id; @Basic private Long door; @@ -94,4 +94,12 @@ public class EntryEvent implements EventObject { public String createMessage() { return "User: "+who+" passed through door: " +door; } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } } diff --git a/src/main/java/application/events/impl/EventObjectImpl.java b/src/main/java/application/events/impl/EventObjectImpl.java deleted file mode 100644 index 5e059e8..0000000 --- a/src/main/java/application/events/impl/EventObjectImpl.java +++ /dev/null @@ -1,31 +0,0 @@ -package application.events.impl; - -import application.events.EventObject; -import application.model.User; - -/** - * Created by lukasgol on 01.02.15. - */ -public class EventObjectImpl implements EventObject { - public User user; - - @Override - public void validEvent() { - System.out.println("Chceking event: "+this.getClass().getName()); - } - - @Override - public void handleEvent() { - System.out.println("sending notification for event: "+this.getClass().getName()); - } - - @Override - public boolean isValid() { - return true; - } - - @Override - public String createMessage() { - return "User: "+user.getFirstName()+" "+user.getLastName()+" passed through door" ; - } -} diff --git a/src/main/java/application/events/impl/MainDoorEntryEvent.java b/src/main/java/application/events/impl/MainDoorEntryEvent.java new file mode 100644 index 0000000..cb8a365 --- /dev/null +++ b/src/main/java/application/events/impl/MainDoorEntryEvent.java @@ -0,0 +1,65 @@ +package application.events.impl; + +import application.events.EventObject; + +import javax.persistence.*; + +/** + * Created by lukasgol on 11.02.15. + */ +@Entity +public class MainDoorEntryEvent implements EventObject { + + + @Basic + private Long who; + + @Override + public void validEvent() { + + } + + @Override + public void handleEvent() { + + } + + @Override + public boolean isValid() { + return false; + } + + @Override + public String createMessage() { + return null; + } + + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + public Long getWho() { + return who; + } + + public void setWho(Long who) { + this.who = who; + } + + public MainDoorEntryEvent(Long who) { + this.who = who; + } + + public MainDoorEntryEvent() { + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } +} + diff --git a/src/main/java/application/repositories/DoorLockedEventRepository.java b/src/main/java/application/repositories/DoorLockedEventRepository.java new file mode 100644 index 0000000..a0f8601 --- /dev/null +++ b/src/main/java/application/repositories/DoorLockedEventRepository.java @@ -0,0 +1,10 @@ +package application.repositories; + +import application.events.impl.DoorLockedEvent; +import org.springframework.data.repository.CrudRepository; + +/** + * Created by lukasgol on 11.02.15. + */ +public interface DoorLockedEventRepository extends CrudRepository { +} diff --git a/src/main/java/application/repositories/EventRepositoriy.java b/src/main/java/application/repositories/EntryEventRepository.java similarity index 70% rename from src/main/java/application/repositories/EventRepositoriy.java rename to src/main/java/application/repositories/EntryEventRepository.java index 5144b59..faa240a 100644 --- a/src/main/java/application/repositories/EventRepositoriy.java +++ b/src/main/java/application/repositories/EntryEventRepository.java @@ -6,6 +6,6 @@ import org.springframework.data.repository.CrudRepository; /** * Created by lukasgol on 01.02.15. */ -public interface EventRepositoriy extends CrudRepository +public interface EntryEventRepository extends CrudRepository { } diff --git a/src/main/java/application/repositories/MainDoorEntryEventRepository.java b/src/main/java/application/repositories/MainDoorEntryEventRepository.java new file mode 100644 index 0000000..904d1f0 --- /dev/null +++ b/src/main/java/application/repositories/MainDoorEntryEventRepository.java @@ -0,0 +1,11 @@ +package application.repositories; + +import application.events.impl.EntryEvent; +import application.events.impl.MainDoorEntryEvent; +import org.springframework.data.repository.CrudRepository; + +/** + * Created by lukasgol on 11.02.15. + */ +public interface MainDoorEntryEventRepository extends CrudRepository { +} diff --git a/src/main/resources/app.properties b/src/main/resources/app.properties index d36bfd0..961e55a 100644 --- a/src/main/resources/app.properties +++ b/src/main/resources/app.properties @@ -1,2 +1,3 @@ +server.port=8181 my.prop=avalue lala=lala \ No newline at end of file