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