Completely rebuild server-project with gradle

This commit is contained in:
2021-11-22 07:01:01 +01:00
parent fcdaf2604f
commit 281d2947cd
28 changed files with 889 additions and 995 deletions

View File

@@ -0,0 +1,118 @@
package com.vpr.server;
import java.sql.Date;
import java.sql.Time;
public class DateEvent {
private long userId;
private String userName;
private String userForename;
private Date date;
private String name;
private Integer priority;
private boolean isFullDay;
private Time start;
private Time end;
public DateEvent(UserEvent userEvent) {
this.userId = userEvent.getUser().getId();
this.userName = userEvent.getUser().getName();
this.userForename = userEvent.getUser().getForename();
this.date = userEvent.getDate();
this.name = userEvent.getEvent().getName();
this.priority = userEvent.getEvent().getPriority();
this.isFullDay = userEvent.getEvent().isFullDay();
this.start = userEvent.getEvent().getStart();
this.end = userEvent.getEvent().getEnd();
}
public DateEvent(long userId, String userName, String userForename, Date date, String name, Integer priority, boolean isFullDay, Time start, Time end) {
this.userId = userId;
this.userName = userName;
this.userForename = userForename;
this.date = date;
this.name = name;
this.priority = priority;
this.isFullDay = isFullDay;
this.start = start;
this.end = end;
}
/*********************
* Getter and Setter *
*********************/
public long getUserId() {
return userId;
}
public void setUserId(long userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserForename() {
return userForename;
}
public void setUserForename(String userForename) {
this.userForename = userForename;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
public boolean isFullDay() {
return isFullDay;
}
public void setFullDay(boolean fullDay) {
isFullDay = fullDay;
}
public Time getStart() {
return start;
}
public void setStart(Time start) {
this.start = start;
}
public Time getEnd() {
return end;
}
public void setEnd(Time end) {
this.end = end;
}
}

View File

@@ -0,0 +1,97 @@
package com.vpr.server;
import javax.persistence.*;
import java.sql.Time;
import java.util.List;
// @Entity creates a table out of this class with Hibernate
@Entity(name = "Event")
public class Event {
// Generate the primary key
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
private String name;
private Integer priority;
private boolean isFullDay;
private Time start;
private Time end;
@OneToMany(mappedBy = "event")
private List<UserEvent> userEvent;
/*********************
* Getter and Setter *
*********************/
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
public boolean isFullDay() {
return isFullDay;
}
public void setFullDay(boolean fullDay) {
isFullDay = fullDay;
}
public Time getStart() {
return start;
}
public void setStart(Time start) {
this.start = start;
}
public Time getEnd() {
return end;
}
public void setEnd(Time end) {
this.end = end;
}
public List<UserEvent> getUserEvent() {
return userEvent;
}
public void setUserEvent(List<UserEvent> userEvent) {
this.userEvent = userEvent;
}
// toString
@Override
public String toString() {
return "Event{" +
"id=" + id +
", name='" + name + '\'' +
", priority=" + priority +
", isFullDay=" + isFullDay +
", start=" + start +
", end=" + end +
", userEvent=" + userEvent +
'}';
}
}

View File

@@ -0,0 +1,12 @@
package com.vpr.server;
import org.springframework.data.repository.CrudRepository;
import java.util.List;
// This will be AUTO IMPLEMENTED by Spring into a Bean called eventRepository
// CRUD refers Create, Read, Update, Delete
public interface EventRepository extends CrudRepository<Event, Integer> {
}

View File

@@ -0,0 +1,72 @@
package com.vpr.server;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.sql.Date;
@Controller // This means that this class is a Controller
@RequestMapping(path="/vpr") // This means URL's start with /demo (after Application path)
public class MainController {
// This means to get the bean called userRepository
// Which is auto-generated by Spring, we will use it to handle the data
@Autowired
private com.vpr.server.UserRepository userRepository;
@Autowired
private EventRepository eventRepository;
@Autowired
private UserEventRepository userEventRepository;
// POST-request at /add with request parameter
// @ResponseBody means the returned String is the response, not a view name
@PostMapping(path="/add-user")
public @ResponseBody String addNewUser (
@RequestParam String name,
@RequestParam String forename,
@RequestParam String password,
@RequestParam String isAdmin
) {
com.vpr.server.User user = new com.vpr.server.User();
// TODO set correct token and password
user.setName(name);
user.setForename(forename);
user.setPassword(password);
user.setToken("test");
user.setAdmin(isAdmin.equals("1"));
userRepository.save(user);
return "Saved";
}
// GET-request at /all-users
// returns JSON-data
@GetMapping(path="/all-users")
public @ResponseBody Iterable<com.vpr.server.User> getAllUsers() {
return userRepository.findAll();
}
// POST-request at /users-by-name
// returns JSON-data
@PostMapping(path="/users-by-name")
public @ResponseBody Iterable<com.vpr.server.User> getUsersByName(@RequestParam String name) {
return userRepository.findByName(name);
}
// GET-request at /all-events
// returns JSON-data
@GetMapping(path="/all-events")
public @ResponseBody Iterable<com.vpr.server.Event> getAllEvents() {
return eventRepository.findAll();
}
@GetMapping(path="/event-by-userid")
public @ResponseBody Iterable<java.sql.Date> getEventByUserId() {
return userEventRepository.findAllDates();
}
}

View File

@@ -0,0 +1,13 @@
package com.vpr.server;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ServerApplication {
public static void main(String[] args) {
SpringApplication.run(ServerApplication.class, args);
}
}

View File

@@ -0,0 +1,82 @@
package com.vpr.server;
import javax.persistence.*;
import java.util.List;
// @Entity creates a table out of this class with Hibernate
@Entity
public class User {
// Generate the primary key
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
private String name;
private String forename;
private String password;
private String token;
private boolean isAdmin;
@OneToMany(mappedBy = "user")
private List<UserEvent> userEvent;
/*********************
* Getter and Setter *
*********************/
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getForename() {
return forename;
}
public void setForename(String forename) {
this.forename = forename;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public boolean isAdmin() {
return isAdmin;
}
public void setAdmin(boolean admin) {
isAdmin = admin;
}
public List<UserEvent> getEventList() {
return userEvent;
}
public void setEventList(List<UserEvent> userEvent) {
this.userEvent = userEvent;
}
}

View File

@@ -0,0 +1,62 @@
package com.vpr.server;
import javax.persistence.*;
import java.sql.Date;
import java.util.List;
// @Entity creates a table out of this class with Hibernate
// @Table defines the table-name
@Entity
@Table(name="user_event")
@IdClass(UserEventId.class)
public class UserEvent {
@Id
@ManyToOne
@JoinColumn(name = "user_id", referencedColumnName = "id")
private User user;
@Id
@ManyToOne
@JoinColumn(name = "event_id", referencedColumnName = "id")
private Event event;
private Date date;
/*********************
* Getter and Setter *
*********************/
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Event getEvent() {
return event;
}
public void setEvent(Event event) {
this.event = event;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
// toString
@Override
public String toString() {
return "UserEvent{" +
"user=" + user.getId() +
", event=" + event.getId() +
", date=" + date +
'}';
}
}

View File

@@ -0,0 +1,28 @@
package com.vpr.server;
import java.io.Serializable;
public class UserEventId implements Serializable {
private long user;
private long event;
/*********************
* Getter and Setter *
*********************/
public long getUser() {
return user;
}
public void setUser(long user) {
this.user = user;
}
public long getEvent() {
return event;
}
public void setEvent(long event) {
this.event = event;
}
}

View File

@@ -0,0 +1,27 @@
package com.vpr.server;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import java.sql.Date;
import java.util.List;
// This will be AUTO IMPLEMENTED by Spring into a Bean called eventListRepository
// CRUD refers Create, Read, Update, Delete
public interface UserEventRepository extends CrudRepository<UserEvent, Integer> {
@Query("SELECT " +
" ue.date " +
"FROM " +
" user_event ue")
List<java.sql.Date> findAllDates();
/*
@Query("SELECT " +
" new com.vpr.server.DateEvent(ue.date) " +
"FROM " +
" user_event ue")
List<DateEvent> findAllAsDateEvent();
*/
}

View File

@@ -0,0 +1,12 @@
package com.vpr.server;
import org.springframework.data.repository.CrudRepository;
import java.util.List;
// This will be AUTO IMPLEMENTED by Spring into a Bean called userRepository
// CRUD refers Create, Read, Update, Delete
public interface UserRepository extends CrudRepository<User, Integer> {
List<User> findByName(String name);
}

View File

@@ -0,0 +1,13 @@
package com.vpr.server;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class ServerApplicationTests {
@Test
void contextLoads() {
}
}