Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public void configure(HttpSecurity http) throws Exception {
.and().csrf().disable().cors().disable().formLogin().defaultSuccessUrl("/", false);
}


// NON PRODUCTION!!! spring 3-4
// @Override
// public void configure(AuthenticationManagerBuilder auth) throws Exception {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public String getHelloPage(Model model) {
return "hello";
}

@RequestMapping("/")
@RequestMapping("/menu")
public String getBadgerPage() {
return "menu";
}
Expand Down
54 changes: 54 additions & 0 deletions src/main/java/io/khasang/bend/controller/FrontendController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package io.khasang.bend.controller;

import io.khasang.bend.entity.HomePagesUrl;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import java.util.List;

@Controller
@RequestMapping("/")
public class FrontendController {

protected EntityManager entityManager;

@RequestMapping(value = "{homepageadress}", method = RequestMethod.GET)
String getDynamicUriValueRegex(@PathVariable("homepageadress") String homepageadress, Model model){

Query q = entityManager.createQuery("FROM HomePagesUrl WHERE url = ?1");

q.setParameter(1, homepageadress);
System.err.println("location query"+q.toString());
List<HomePagesUrl> resultList = q.getResultList();
if (!resultList.isEmpty()){
HomePagesUrl homePagesUrl = resultList.get(0);
int i = homePagesUrl.getEntityId();
switch (i){
case 0:
model.addAttribute("urlId", homePagesUrl.getId());
return "student-template";
case 1:
model.addAttribute("urlId", homePagesUrl.getId());
return "manager-template";
}

System.out.println("location"+ homepageadress +"catched");
}
return "student-template";
}

@PersistenceContext
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}

public EntityManager getEntityManager() {
return entityManager;
}
}
40 changes: 40 additions & 0 deletions src/main/java/io/khasang/bend/entity/HomePagesUrl.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package io.khasang.bend.entity;

import javax.persistence.*;

@Entity
@Table(name = "urls")
public class HomePagesUrl {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
Long id;
@Column(name = "url")
String url;
@Column(name = "entity_type")
Integer entityId;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public Integer getEntityId() {
return entityId;
}

public void setEntityId(Integer entityId) {
this.entityId = entityId;
}
}
30 changes: 30 additions & 0 deletions src/main/java/io/khasang/bend/entity/School.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ public class School {
@Column(columnDefinition = "TEXT", name = "time_table")
private String timeTable;

@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
//@Column(name = "url_id")
private HomePagesUrl url;

// MultipleBagFetchException: cannot simultaneously fetch multiple bags: невозможно получить несколько пакетов
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private Set<Discipline> disciplinesSet = new HashSet<>();
Expand Down Expand Up @@ -109,4 +113,30 @@ public Set<Place> getPlacesSet() {
public void setPlacesSet(Set<Place> placesSet) {
this.placesSet = placesSet;
}

public HomePagesUrl getUrl() {
return url;
}

public void setUrl(HomePagesUrl url) {
this.url = url;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

School school = (School) o;

if (id != school.id) return false;
return name.equals(school.name);
}

@Override
public int hashCode() {
int result = (int) (id ^ (id >>> 32));
result = 31 * result + name.hashCode();
return result;
}
}
46 changes: 36 additions & 10 deletions src/main/java/io/khasang/bend/entity/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,7 @@
import io.khasang.bend.model.UserStatus;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import javax.persistence.*;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.HashSet;
Expand Down Expand Up @@ -49,6 +40,9 @@ public class User {
private String interests;
@Column(name = "role_id")
private Integer role;
@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private HomePagesUrl url;

@ManyToMany(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
private Set<Discipline> disciplinesSet = new HashSet<>();

Expand Down Expand Up @@ -179,4 +173,36 @@ public String getInterests() {
public void setInterests(String interests) {
this.interests = interests;
}

public HomePagesUrl getUrl() {
return url;
}

public void setUrl(HomePagesUrl url) {
this.url = url;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

User user = (User) o;

if (id != null ? !id.equals(user.id) : user.id != null) return false;
if (!name.equals(user.name)) return false;
if (!lastName.equals(user.lastName)) return false;
if (!age.equals(user.age)) return false;
return gender == user.gender;
}

@Override
public int hashCode() {
int result = id != null ? id.hashCode() : 0;
result = 31 * result + name.hashCode();
result = 31 * result + lastName.hashCode();
result = 31 * result + age.hashCode();
result = 31 * result + (gender != null ? gender.hashCode() : 0);
return result;
}
}
2 changes: 1 addition & 1 deletion src/main/resources/hibernate.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.hbm2ddl.auto=create
hibernate.hbm2ddl.auto=update
4 changes: 2 additions & 2 deletions src/main/resources/util.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
jdbc.postgresql.driver=org.postgresql.Driver
jdbc.postgresql.url=jdbc:postgresql://localhost:5432/bend
jdbc.postgresql.username=root
jdbc.postgresql.password=root
jdbc.postgresql.username=postgres
jdbc.postgresql.password=postgres
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import io.khasang.bend.entity.Place;
import io.khasang.bend.entity.Point;
import io.khasang.bend.entity.School;
import io.khasang.bend.entity.HomePagesUrl;
import org.junit.Test;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.*;
Expand Down Expand Up @@ -94,6 +95,13 @@ private School createSchool() {
return createdSchool;
}

private HomePagesUrl createUrl(){
HomePagesUrl url = new HomePagesUrl();
url.setEntityId(1);
url.setUrl(String.valueOf(url.hashCode()));
return url;
}

private School prefillSchool() {
School school = new School();
//school.setId(1);
Expand Down Expand Up @@ -124,6 +132,9 @@ private School prefillSchool() {
set.add(place2);

school.setPlacesSet(set);

school.setUrl(createUrl());

return school;
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package io.khasang.bend.controller;

import io.khasang.bend.dto.UserDto;
import io.khasang.bend.entity.HomePagesUrl;
import io.khasang.bend.entity.User;
import io.khasang.bend.model.Gender;
import io.khasang.bend.model.UserStatus;
Expand All @@ -11,6 +12,7 @@

import java.time.LocalDate;
import java.util.List;
import java.util.Random;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
Expand Down Expand Up @@ -95,6 +97,13 @@ private User createUser() {
return createdUser;
}

private HomePagesUrl createUrl(){
HomePagesUrl url = new HomePagesUrl();
url.setEntityId(0);
url.setUrl(String.valueOf(url.hashCode()));
return url;
}

private User prefillUser() {
User user = new User();
user.setName("Ivan");
Expand All @@ -110,6 +119,7 @@ private User prefillUser() {
user.setHealthLimited(false);
user.setUserDescription("NERD");
user.setInterests("Wakeboarding");
user.setUrl(createUrl());
return user;
}
}