history: repository, model, controller methods

This commit is contained in:
Marcin Michałek committed 2015-01-31 14:14:37 +01:00
1 parent b7f19e5567
commit 6942009358
8 files changed
+247 -87

No files matched your search

+70 -69
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<module external.linked.project.id="NFCServer" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration>
@@ -24,13 +24,15 @@
<root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
</webroots>
<sourceRoots>
<root url="file://$MODULE_DIR$/src/main/java" />
<root url="file://$MODULE_DIR$/src/main/resources" />
<root url="file://$MODULE_DIR$/src/main/java" />
</sourceRoots>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
<component name="NewModuleRootManager" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/build/classes/main" />
<output-test url="file://$MODULE_DIR$/build/classes/test" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
@@ -42,70 +44,69 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="Gradle: jackson-databind-2.3.2" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-boot-starter-data-jpa-1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: h2-1.3.175" level="project" />
<orderEntry type="library" exported="" name="Gradle: json-20080701" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-boot-starter-web-1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-core-4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: jackson-annotations-2.3.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: jackson-core-2.3.2" level="project" />
<orderEntry type="library" exported="" name="Gradle: commons-logging-1.1.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-beans-4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: aopalliance-1.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-aop-4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-expression-4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-context-4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-boot-1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-boot-autoconfigure-1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: slf4j-api-1.7.6" level="project" />
<orderEntry type="library" exported="" name="Gradle: jcl-over-slf4j-1.7.6" level="project" />
<orderEntry type="library" exported="" name="Gradle: jul-to-slf4j-1.7.6" level="project" />
<orderEntry type="library" exported="" name="Gradle: log4j-over-slf4j-1.7.6" level="project" />
<orderEntry type="library" exported="" name="Gradle: logback-core-1.1.1" level="project" />
<orderEntry type="library" exported="" name="Gradle: logback-classic-1.1.1" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-boot-starter-logging-1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-boot-starter-1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: aspectjrt-1.7.4" level="project" />
<orderEntry type="library" exported="" name="Gradle: aspectjweaver-1.7.4" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-boot-starter-aop-1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: snakeyaml-1.13" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-tx-4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-jdbc-4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: tomcat-juli-7.0.52" level="project" />
<orderEntry type="library" exported="" name="Gradle: tomcat-jdbc-7.0.52" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-boot-starter-jdbc-1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: jboss-logging-3.1.3.GA" level="project" />
<orderEntry type="library" exported="" name="Gradle: jboss-logging-annotations-1.2.0.Beta1" level="project" />
<orderEntry type="library" exported="" name="Gradle: xml-apis-1.0.b2" level="project" />
<orderEntry type="library" exported="" name="Gradle: dom4j-1.6.1" level="project" />
<orderEntry type="library" exported="" name="Gradle: hibernate-commons-annotations-4.0.4.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: hibernate-jpa-2.1-api-1.0.0.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: jboss-transaction-api_1.2_spec-1.0.0.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: javassist-3.18.1-GA" level="project" />
<orderEntry type="library" exported="" name="Gradle: antlr-2.7.7" level="project" />
<orderEntry type="library" exported="" name="Gradle: jandex-1.1.0.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: hibernate-core-4.3.1.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: hibernate-entitymanager-4.3.1.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-orm-4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-data-commons-1.7.1.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-data-jpa-1.5.1.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-aspects-4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-web-4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-webmvc-4.0.3.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: jstl-1.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Gradle: jstl-1.2" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: junit-4.11" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: spring-boot-starter-test-1.0.0.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: hamcrest-core-1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: objenesis-1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: mockito-core-1.9.5" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: hamcrest-library-1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: spring-test-4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: tomcat-embed-core-7.0.52" level="project" />
<orderEntry type="library" exported="" name="Gradle: tomcat-embed-el-7.0.52" level="project" />
<orderEntry type="library" exported="" name="Gradle: tomcat-embed-logging-juli-7.0.52" level="project" />
<orderEntry type="library" exported="" name="Gradle: spring-boot-starter-tomcat-1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.fasterxml.jackson.core:jackson-databind:2.3.2" level="project" />
<orderEntry type="library" exported="" name="Gradle: junit:junit:4.11" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework.boot:spring-boot-starter-data-jpa:1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.h2database:h2:1.3.175" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.json:json:20080701" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework.boot:spring-boot-starter-web:1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.google.code.gson:gson:2.2.4" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.mockito:mockito-core:1.10.19" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework:spring-core:4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.fasterxml.jackson.core:jackson-annotations:2.3.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.fasterxml.jackson.core:jackson-core:2.3.2" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: commons-logging:commons-logging:1.1.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework:spring-beans:4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: aopalliance:aopalliance:1.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework:spring-aop:4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework:spring-expression:4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework:spring-context:4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework.boot:spring-boot:1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework.boot:spring-boot-autoconfigure:1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.slf4j:slf4j-api:1.7.6" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.slf4j:jcl-over-slf4j:1.7.6" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.slf4j:jul-to-slf4j:1.7.6" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.slf4j:log4j-over-slf4j:1.7.6" level="project" />
<orderEntry type="library" exported="" name="Gradle: ch.qos.logback:logback-core:1.1.1" level="project" />
<orderEntry type="library" exported="" name="Gradle: ch.qos.logback:logback-classic:1.1.1" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework.boot:spring-boot-starter-logging:1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework.boot:spring-boot-starter:1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.aspectj:aspectjrt:1.7.4" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.aspectj:aspectjweaver:1.7.4" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework.boot:spring-boot-starter-aop:1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.yaml:snakeyaml:1.13" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework:spring-tx:4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework:spring-jdbc:4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.apache.tomcat:tomcat-juli:7.0.52" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.apache.tomcat:tomcat-jdbc:7.0.52" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework.boot:spring-boot-starter-jdbc:1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.jboss.logging:jboss-logging:3.1.3.GA" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.jboss.logging:jboss-logging-annotations:1.2.0.Beta1" level="project" />
<orderEntry type="library" exported="" name="Gradle: xml-apis:xml-apis:1.0.b2" level="project" />
<orderEntry type="library" exported="" name="Gradle: dom4j:dom4j:1.6.1" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.hibernate.common:hibernate-commons-annotations:4.0.4.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.0.0.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.javassist:javassist:3.18.1-GA" level="project" />
<orderEntry type="library" exported="" name="Gradle: antlr:antlr:2.7.7" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.jboss:jandex:1.1.0.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.hibernate:hibernate-core:4.3.1.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.hibernate:hibernate-entitymanager:4.3.1.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework:spring-orm:4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework.data:spring-data-commons:1.7.1.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework.data:spring-data-jpa:1.5.1.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework:spring-aspects:4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.apache.tomcat.embed:tomcat-embed-core:7.0.52" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.apache.tomcat.embed:tomcat-embed-el:7.0.52" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.apache.tomcat.embed:tomcat-embed-logging-juli:7.0.52" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework.boot:spring-boot-starter-tomcat:1.0.0.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework:spring-web:4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.springframework:spring-webmvc:4.0.3.RELEASE" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.objenesis:objenesis:2.1" level="project" />
<orderEntry type="library" exported="" scope="RUNTIME" name="Gradle: javax.servlet:jstl:1.2" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: org.springframework.boot:spring-boot-starter-test:1.0.0.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: org.springframework:spring-test:4.0.3.RELEASE" level="project" />
</component>
</module>
</module>
+6 -4
View File
@@ -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();
}
+10
View File
@@ -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;
}
@@ -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<HistoryEntry> 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<Role> roles = new HashSet<Role>();
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;
}
}
@@ -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;
}
}
@@ -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;
}
}
@@ -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<HistoryEntry, Long> {
}
@@ -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(){