Add the version revisions system.

This commit is contained in:
2018-09-03 21:53:07 +02:00
parent 1d6b0bb348
commit 48dfaefa0c
14 changed files with 315 additions and 9 deletions
@@ -0,0 +1,43 @@
package org.codiki.core.entities.persistence;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* Entity which represents a version for the version revisions panel.
*
* @author florian
*
*/
@Entity
@Table(name="version")
public class Version implements Serializable {
private static final long serialVersionUID = -8803744005903941330L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String number;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
}
@@ -0,0 +1,52 @@
package org.codiki.core.entities.persistence;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name="version_revision")
public class VersionRevision implements Serializable {
private static final long serialVersionUID = 1837590467941917225L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String text;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "version_id")
private Version version;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public Version getVersion() {
return version;
}
public void setVersion(Version version) {
this.version = version;
}
}
@@ -0,0 +1,16 @@
package org.codiki.core.repositories;
import java.util.Optional;
import org.codiki.core.entities.persistence.Version;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface VersionRepository extends CrudRepository<Version, Long> {
@Query("SELECT v FROM Version v ORDER BY v.number DESC")
Iterable<Version> findAllOrderByNumber();
Optional<Version> findByNumber(String pNumber);
}
@@ -0,0 +1,16 @@
package org.codiki.core.repositories;
import java.util.List;
import org.codiki.core.entities.persistence.VersionRevision;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
@Repository
public interface VersionRevisionRepository extends CrudRepository<VersionRevision, Long> {
@Query("SELECT vr FROM VersionRevision vr JOIN FETCH vr.version WHERE vr.version.number = :versionNumber")
List<VersionRevision> findByVersionNumber(@Param("versionNumber") final String pVersionNumber);
}
@@ -0,0 +1,33 @@
package org.codiki.versionrevisions;
import org.codiki.core.entities.persistence.Version;
import org.codiki.core.entities.persistence.VersionRevision;
import org.codiki.core.repositories.VersionRepository;
import org.codiki.core.repositories.VersionRevisionRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/versionrevisions")
public class VersionRevisionController {
@Autowired
private VersionRevisionRepository repository;
@Autowired
private VersionRepository versionRepository;
@GetMapping("/versions")
public Iterable<Version> getVersions() {
return versionRepository.findAllOrderByNumber();
}
@GetMapping("/{versionNumber}")
public Iterable<VersionRevision> getVersionRevisionByVersionNumber(
@PathVariable("versionNumber") final String pVersionNumber) {
return repository.findByVersionNumber(pVersionNumber);
}
}