diff --git a/pom.xml b/pom.xml index e2432201b68d8a198a229e8520b7d87817ee043d..8e0c6095cb665275c7c8c2d337a3df21d044d240 100644 --- a/pom.xml +++ b/pom.xml @@ -17,6 +17,8 @@ <properties> <java.version>11</java.version> + + <projectlombok.version>1.18.12</projectlombok.version> </properties> <dependencies> @@ -45,6 +47,12 @@ </exclusion> </exclusions> </dependency> + + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>${projectlombok.version}</version> + </dependency> </dependencies> <build> diff --git a/src/main/java/com/example/demo/DemoApplication.java b/src/main/java/com/example/demo/DemoApplication.java index 41072b944a0dbcb6d5d7054d6c408019e9822abc..41df739fe160b973085f28a82d69766179afaceb 100644 --- a/src/main/java/com/example/demo/DemoApplication.java +++ b/src/main/java/com/example/demo/DemoApplication.java @@ -1,5 +1,9 @@ package com.example.demo; +import com.example.demo.domain.GameLevel; +import com.example.demo.domain.Person; +import com.example.demo.repository.GameLevelRepository; +import com.example.demo.repository.PersonRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.CommandLineRunner; @@ -9,6 +13,7 @@ import org.springframework.context.annotation.Bean; import java.util.Arrays; import java.util.List; +import java.util.Optional; @SpringBootApplication public class DemoApplication { @@ -56,4 +61,22 @@ public class DemoApplication { "\t" + personRepository.findByName(person.getName()).toString())); }; } + + @Bean + CommandLineRunner anotherDemo(GameLevelRepository gameLevelRepository) { + return args -> { + + gameLevelRepository.deleteAll(); + + GameLevel gameLevel = new GameLevel(); + gameLevel.setTitle("Title"); + + + GameLevel savedGameLevel = gameLevelRepository.save(gameLevel); + log.info("Saved game level: {}", savedGameLevel); + + Optional<GameLevel> foundGameLevel = gameLevelRepository.findById(savedGameLevel.getId()); + log.info("Saved game level: {}", foundGameLevel); + }; + } } diff --git a/src/main/java/com/example/demo/domain/AssessmentLevel.java b/src/main/java/com/example/demo/domain/AssessmentLevel.java new file mode 100644 index 0000000000000000000000000000000000000000..3b813c47d9ce32c6e975eb600d945e805b006e41 --- /dev/null +++ b/src/main/java/com/example/demo/domain/AssessmentLevel.java @@ -0,0 +1,19 @@ +package com.example.demo.domain; + +import lombok.Data; +import org.neo4j.ogm.annotation.GeneratedValue; +import org.neo4j.ogm.annotation.Id; +import org.neo4j.ogm.annotation.NodeEntity; + +@NodeEntity +@Data +public class AssessmentLevel extends BaseLevel { + + @Id + @GeneratedValue + private Long id; + + private String assessmentType; + + +} diff --git a/src/main/java/com/example/demo/domain/BaseLevel.java b/src/main/java/com/example/demo/domain/BaseLevel.java new file mode 100644 index 0000000000000000000000000000000000000000..988e4a5cfa07e39c503a8271c32338061d97e207 --- /dev/null +++ b/src/main/java/com/example/demo/domain/BaseLevel.java @@ -0,0 +1,12 @@ +package com.example.demo.domain; + +import lombok.Data; +import org.neo4j.ogm.annotation.NodeEntity; + +@NodeEntity +@Data +public class BaseLevel { + private String title; + private String estimatedDuration; + private Long maxScore; +} diff --git a/src/main/java/com/example/demo/domain/GameLevel.java b/src/main/java/com/example/demo/domain/GameLevel.java new file mode 100644 index 0000000000000000000000000000000000000000..27a33160295e0aa5fe9c92f28c2ae91ad32b07a9 --- /dev/null +++ b/src/main/java/com/example/demo/domain/GameLevel.java @@ -0,0 +1,29 @@ +package com.example.demo.domain; + +import lombok.Data; +import org.neo4j.ogm.annotation.GeneratedValue; +import org.neo4j.ogm.annotation.Id; +import org.neo4j.ogm.annotation.NodeEntity; +import org.neo4j.ogm.annotation.Relationship; + +import java.util.List; + + +@NodeEntity +@Data +public class GameLevel extends BaseLevel { + + @Id + @GeneratedValue + private Long id; + + private String content; + private String solutionPenalized; + private String flag; + private String solution; + private String attachments; + private String incorrectFlagLimit; + + @Relationship(type = "GAME_LEVEL_HINTS", direction = Relationship.UNDIRECTED) + private List<Hint> hints; +} diff --git a/src/main/java/com/example/demo/domain/Hint.java b/src/main/java/com/example/demo/domain/Hint.java new file mode 100644 index 0000000000000000000000000000000000000000..e4a2c4148c1142ff297daddc1d4b74b94f09067d --- /dev/null +++ b/src/main/java/com/example/demo/domain/Hint.java @@ -0,0 +1,18 @@ +package com.example.demo.domain; + +import lombok.Data; +import org.neo4j.ogm.annotation.GeneratedValue; +import org.neo4j.ogm.annotation.Id; + +@Data +public class Hint { + + @Id + @GeneratedValue + private Long id; + + private String title; + private String content; + private String hintPenalty; + private String orderInLevel; +} diff --git a/src/main/java/com/example/demo/domain/InfoLevel.java b/src/main/java/com/example/demo/domain/InfoLevel.java new file mode 100644 index 0000000000000000000000000000000000000000..eaed3579d28528654130b59428b4c11a0c462e51 --- /dev/null +++ b/src/main/java/com/example/demo/domain/InfoLevel.java @@ -0,0 +1,15 @@ +package com.example.demo.domain; + +import org.neo4j.ogm.annotation.GeneratedValue; +import org.neo4j.ogm.annotation.Id; +import org.neo4j.ogm.annotation.NodeEntity; + +@NodeEntity +public class InfoLevel extends BaseLevel { + + @Id + @GeneratedValue + private Long id; + + private String content; +} diff --git a/src/main/java/com/example/demo/Person.java b/src/main/java/com/example/demo/domain/Person.java similarity index 97% rename from src/main/java/com/example/demo/Person.java rename to src/main/java/com/example/demo/domain/Person.java index e764ec890d56851b2fa3574686c90ba673a2942c..bea7fdb3a3e058aab92209952a810ba9e29e2711 100644 --- a/src/main/java/com/example/demo/Person.java +++ b/src/main/java/com/example/demo/domain/Person.java @@ -1,5 +1,5 @@ -package com.example.demo; +package com.example.demo.domain; import org.neo4j.ogm.annotation.GeneratedValue; import org.neo4j.ogm.annotation.Id; diff --git a/src/main/java/com/example/demo/repository/AssessmentLevelRepository.java b/src/main/java/com/example/demo/repository/AssessmentLevelRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..8f053645c82c07de09cdcf42c8ce45102c1c84a4 --- /dev/null +++ b/src/main/java/com/example/demo/repository/AssessmentLevelRepository.java @@ -0,0 +1,7 @@ +package com.example.demo.repository; + +import com.example.demo.domain.AssessmentLevel; +import org.springframework.data.neo4j.repository.Neo4jRepository; + +public interface AssessmentLevelRepository extends Neo4jRepository<AssessmentLevel, Long> { +} diff --git a/src/main/java/com/example/demo/repository/BaseLevelRepository.java b/src/main/java/com/example/demo/repository/BaseLevelRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..51a0b97bebdd447d128acf5abe16805ff7886cf0 --- /dev/null +++ b/src/main/java/com/example/demo/repository/BaseLevelRepository.java @@ -0,0 +1,7 @@ +package com.example.demo.repository; + +import com.example.demo.domain.BaseLevel; +import org.springframework.data.neo4j.repository.Neo4jRepository; + +public interface BaseLevelRepository extends Neo4jRepository<BaseLevel, Long> { +} diff --git a/src/main/java/com/example/demo/repository/GameLevelRepository.java b/src/main/java/com/example/demo/repository/GameLevelRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..92a29e07abe78ab9515dd6cf27d881e594ec647b --- /dev/null +++ b/src/main/java/com/example/demo/repository/GameLevelRepository.java @@ -0,0 +1,7 @@ +package com.example.demo.repository; + +import com.example.demo.domain.GameLevel; +import org.springframework.data.neo4j.repository.Neo4jRepository; + +public interface GameLevelRepository extends Neo4jRepository<GameLevel, Long> { +} diff --git a/src/main/java/com/example/demo/PersonRepository.java b/src/main/java/com/example/demo/repository/PersonRepository.java similarity index 69% rename from src/main/java/com/example/demo/PersonRepository.java rename to src/main/java/com/example/demo/repository/PersonRepository.java index 7d1a977f1f0fadef6e1e88e5cb97b50a1a005080..a4ef5786a2fe6b10bbe7b64c520ef2caa2dac584 100644 --- a/src/main/java/com/example/demo/PersonRepository.java +++ b/src/main/java/com/example/demo/repository/PersonRepository.java @@ -1,5 +1,6 @@ -package com.example.demo; +package com.example.demo.repository; +import com.example.demo.domain.Person; import org.springframework.data.repository.CrudRepository; public interface PersonRepository extends CrudRepository<Person, Long> {