diff --git a/NFCServer.iml b/NFCServer.iml
index d5fa6ee..2b9e840 100644
--- a/NFCServer.iml
+++ b/NFCServer.iml
@@ -1,5 +1,5 @@
-
+
@@ -24,13 +24,15 @@
-
+
-
+
+
+
@@ -42,70 +44,69 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
\ No newline at end of file
diff --git a/src/main/java/application/Config.java b/src/main/java/application/Config.java
index 3900b7f..37ea2cf 100644
--- a/src/main/java/application/Config.java
+++ b/src/main/java/application/Config.java
@@ -1,6 +1,7 @@
package application;
import application.repositories.DoorRepository;
+import application.repositories.HistoryEntryRepository;
import application.repositories.RoleRepository;
import application.repositories.UserRepository;
import application.utils.Initializer;
@@ -38,10 +39,11 @@ public class Config extends SpringBootServletInitializer {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(Config.class, args);
- UserRepository userRepository=context.getBean(UserRepository.class);
- RoleRepository roleRepository=context.getBean(RoleRepository.class);
- DoorRepository doorRepository=context.getBean(DoorRepository.class);
- new Initializer(roleRepository, userRepository, doorRepository).init();
+ UserRepository userRepository = context.getBean(UserRepository.class);
+ RoleRepository roleRepository = context.getBean(RoleRepository.class);
+ DoorRepository doorRepository = context.getBean(DoorRepository.class);
+ HistoryEntryRepository historyEntryRepository = context.getBean(HistoryEntryRepository.class);
+ new Initializer(roleRepository, userRepository, doorRepository, historyEntryRepository).init();
}
diff --git a/src/main/java/application/Constants.java b/src/main/java/application/Constants.java
new file mode 100644
index 0000000..112b156
--- /dev/null
+++ b/src/main/java/application/Constants.java
@@ -0,0 +1,10 @@
+package application;
+
+/**
+ * Created by Marcin on 2015-01-16.
+ */
+public final class Constants {
+ public static final boolean SUCCESS_TRUE = true;
+ public static final boolean SUCCESS_FALSE = false;
+}
+
diff --git a/src/main/java/application/controllers/UserController.java b/src/main/java/application/controllers/UserController.java
index 0fdfeb8..f471f3f 100644
--- a/src/main/java/application/controllers/UserController.java
+++ b/src/main/java/application/controllers/UserController.java
@@ -1,8 +1,13 @@
package application.controllers;
+import application.Constants;
+import application.model.HistoryEntry;
import application.model.Message;
import application.model.Role;
import application.model.User;
+import application.network.response.BaseResponse;
+import application.repositories.DoorRepository;
+import application.repositories.HistoryEntryRepository;
import application.repositories.RoleRepository;
import application.repositories.UserRepository;
import org.json.JSONArray;
@@ -15,6 +20,7 @@ import org.springframework.web.bind.annotation.*;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
+import java.util.Date;
import java.util.HashSet;
import java.util.Set;
@@ -30,27 +36,36 @@ public class UserController {
@Autowired
private RoleRepository roleRepository;
- public void setUserRepository(UserRepository userRepository) {
- this.userRepository = userRepository;
- }
+ @Autowired
+ private
+ HistoryEntryRepository historyEntryRepository;
- public void setRoleRepository(RoleRepository roleRepository) {
- this.roleRepository = roleRepository;
- }
+ @Autowired
+ DoorRepository doorRepository;
@PersistenceContext
private EntityManager entityManager;
+ @RequestMapping(value = "/logUserEntry/{userId}/{doorId}")
+ @ResponseBody
+ public BaseResponse logUserEntry(@PathVariable("userId") long userId, @PathVariable("doorId") long doorId) throws JSONException {
+ HistoryEntry historyEntry = new HistoryEntry();
+ historyEntry.setDate(new Date().getTime());
+ historyEntry.setUser(userRepository.findOne(userId));
+ historyEntry.setDoor(doorRepository.findOne(doorId));
+ historyEntryRepository.save(historyEntry);
+ return new BaseResponse().init(Constants.SUCCESS_TRUE);
+ }
+
+ @RequestMapping(value = "/history")
+ @ResponseBody
+ public Iterable getHistory() throws JSONException {
+ return historyEntryRepository.findAll();
+ }
+
@RequestMapping(value = "/add")
@ResponseBody
- //powinno mapowac obiekt json na obiekt user
public String addUser(@RequestBody User user) {
- /*User user = new User();
- user.setFirstName(username);
- Set roles = new HashSet();
- roles.add(new Role("lala","lala"));
- roles.add(new Role("lala1","lala1"));
- user.setRoles(roles);*/
userRepository.save(user);
return "saved user: "+user.getUserId();
}
@@ -219,4 +234,12 @@ public class UserController {
userRepository.delete(userId);
return "user deleted: "+userId;
}
+
+ public void setUserRepository(UserRepository userRepository) {
+ this.userRepository = userRepository;
+ }
+
+ public void setRoleRepository(RoleRepository roleRepository) {
+ this.roleRepository = roleRepository;
+ }
}
diff --git a/src/main/java/application/model/HistoryEntry.java b/src/main/java/application/model/HistoryEntry.java
new file mode 100644
index 0000000..d6d9868
--- /dev/null
+++ b/src/main/java/application/model/HistoryEntry.java
@@ -0,0 +1,66 @@
+package application.model;
+
+/**
+ * Created by Marcin on 2015-01-31.
+ */
+
+import javax.persistence.*;
+
+/**
+ * Represents one item on history list.
+ * Contains User, Date and Door ID
+ */
+
+@Entity(name = "historyEntry")
+public class HistoryEntry {
+
+ @Id
+ @Column(name = "historyEntryId")
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private Long historyEntryId;
+
+ @Basic
+ private Long date;
+
+ @OneToOne(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
+// @JoinTable(
+// name="User_Role",
+// joinColumns = @JoinColumn( name="User_ID"))
+ private Door door;
+
+ @OneToOne(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
+ private User user;
+
+ public Long getHistoryEntryId() {
+ return historyEntryId;
+ }
+
+ public void setHistoryEntryId(Long historyEntryId) {
+ this.historyEntryId = historyEntryId;
+ }
+
+ public Long getDate() {
+ return date;
+ }
+
+ public void setDate(Long date) {
+ this.date = date;
+ }
+
+ public Door getDoor() {
+ return door;
+ }
+
+ public void setDoor(Door door) {
+ this.door = door;
+ }
+
+ public User getUser() {
+ return user;
+ }
+
+ public void setUser(User user) {
+ this.user = user;
+ }
+}
+
diff --git a/src/main/java/application/network/response/BaseResponse.java b/src/main/java/application/network/response/BaseResponse.java
new file mode 100644
index 0000000..7bbdca0
--- /dev/null
+++ b/src/main/java/application/network/response/BaseResponse.java
@@ -0,0 +1,42 @@
+package application.network.response;
+
+import java.io.Serializable;
+
+/**
+ * Created by Marcin on 2015-01-31.
+ */
+public class BaseResponse implements Serializable {
+ private boolean success;
+ private String errorMessage;
+ private Integer errorCode;
+
+ public BaseResponse init(boolean success) {
+ this.success = success;
+ return this;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public String getErrorMessage() {
+ return errorMessage;
+ }
+
+ public void setErrorMessage(String errorMessage) {
+ this.errorMessage = errorMessage;
+ }
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+}
+
diff --git a/src/main/java/application/repositories/HistoryEntryRepository.java b/src/main/java/application/repositories/HistoryEntryRepository.java
new file mode 100644
index 0000000..84f366c
--- /dev/null
+++ b/src/main/java/application/repositories/HistoryEntryRepository.java
@@ -0,0 +1,10 @@
+package application.repositories;
+
+import application.model.HistoryEntry;
+import org.springframework.data.repository.CrudRepository;
+
+/**
+ * Created by Marcin on 2015-01-31.
+ */
+public interface HistoryEntryRepository extends CrudRepository {
+}
diff --git a/src/main/java/application/utils/Initializer.java b/src/main/java/application/utils/Initializer.java
index 87f0ba9..bb9c2ec 100644
--- a/src/main/java/application/utils/Initializer.java
+++ b/src/main/java/application/utils/Initializer.java
@@ -2,6 +2,7 @@ package application.utils;
import application.model.*;
import application.repositories.DoorRepository;
+import application.repositories.HistoryEntryRepository;
import application.repositories.RoleRepository;
import application.repositories.UserRepository;
@@ -16,16 +17,21 @@ public class Initializer {
RoleRepository roleRepository;
UserRepository userRepository;
DoorRepository doorRepository;
+ HistoryEntryRepository historyEntryRepository;
public Initializer(RoleRepository roleRepository, UserRepository useRoleRepository) {
this.roleRepository = roleRepository;
this.userRepository = useRoleRepository;
}
- public Initializer(RoleRepository roleRepository, UserRepository userRepository, DoorRepository doorRepository) {
+ public Initializer(RoleRepository roleRepository,
+ UserRepository userRepository,
+ DoorRepository doorRepository,
+ HistoryEntryRepository historyEntryRepository) {
this.roleRepository = roleRepository;
this.userRepository = userRepository;
this.doorRepository = doorRepository;
+ this.historyEntryRepository = historyEntryRepository;
}
public void init(){