diff --git a/pom.xml b/pom.xml
index 963f019..5ca40dd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,6 +42,10 @@
spring-boot-starter-test
test
+
+ com.vaadin.external.google
+ android-json
+
org.junit.vintage
junit-vintage-engine
@@ -59,6 +63,13 @@
telegrambotsextensions
4.6
+
+
+
+ org.json
+ json
+ 20170516
+
diff --git a/src/main/java/ru/javacourse/sourcecodebot/config/TelegramConfig.java b/src/main/java/ru/javacourse/sourcecodebot/config/TelegramConfig.java
index fe87bde..04d73e1 100644
--- a/src/main/java/ru/javacourse/sourcecodebot/config/TelegramConfig.java
+++ b/src/main/java/ru/javacourse/sourcecodebot/config/TelegramConfig.java
@@ -9,6 +9,7 @@
import ru.javacourse.sourcecodebot.telegram.ServiceBot;
import ru.javacourse.sourcecodebot.telegram.handlers.HelpHandler;
import ru.javacourse.sourcecodebot.telegram.handlers.InterviewHandler;
+import ru.javacourse.sourcecodebot.telegram.handlers.LessonHandler;
import javax.annotation.PostConstruct;
import java.util.HashMap;
@@ -37,6 +38,8 @@ public ServiceBot createCommonBot() {
Map handlers = new HashMap<>();
handlers.put("/help", helpHandler());
handlers.put("/java/interview/random", interviewHandler());
+ handlers.put("/java/lesson/", lessonHandler());
+
return new ServiceBot(handlers);
}
@@ -50,5 +53,10 @@ public HelpHandler helpHandler() {
public InterviewHandler interviewHandler() {
return new InterviewHandler();
}
+
+ @Bean
+ public LessonHandler lessonHandler() {
+ return new LessonHandler();
+ }
}
diff --git a/src/main/java/ru/javacourse/sourcecodebot/model/Lesson.java b/src/main/java/ru/javacourse/sourcecodebot/model/Lesson.java
index 4e667c5..3831d18 100644
--- a/src/main/java/ru/javacourse/sourcecodebot/model/Lesson.java
+++ b/src/main/java/ru/javacourse/sourcecodebot/model/Lesson.java
@@ -18,11 +18,15 @@ public class Lesson {
@Column(name = "chapter")
private String chapter;
+ @Column(name = "chapter_id")
+ private String chapterId;
+
@OneToMany(mappedBy = "lesson")
@LazyCollection(LazyCollectionOption.FALSE)
private List lessonTasks;
@OneToOne
+ @JoinColumn(name="resource_id")
private Resource resources;
public Integer getLessonId() {
@@ -41,11 +45,23 @@ public void setChapter(String chapter) {
this.chapter = chapter;
}
+ public String getChapter_id() { return chapterId; }
+
+ public Resource getResources() {
+ return resources;
+ }
+
+ public void setResources(Resource resources) {
+ this.resources = resources;
+ }
+
+ public void setChapter_id(String chapter_id) { this.chapterId = chapter_id; }
@Override
public String toString() {
return "Lesson{" +
"lessonId=" + lessonId +
", chapter='" + chapter + '\'' +
+ ", chapter_id='" + chapterId +
'}';
}
diff --git a/src/main/java/ru/javacourse/sourcecodebot/model/LessonTask.java b/src/main/java/ru/javacourse/sourcecodebot/model/LessonTask.java
index fc6589c..331ff1e 100644
--- a/src/main/java/ru/javacourse/sourcecodebot/model/LessonTask.java
+++ b/src/main/java/ru/javacourse/sourcecodebot/model/LessonTask.java
@@ -11,7 +11,6 @@ public class LessonTask {
@Column(name = "lt_id")
private Integer ltId;
-
@ManyToOne
@JoinColumn(name = "lesson_id")
private Lesson lesson;
@@ -19,9 +18,16 @@ public class LessonTask {
@Column(name = "title")
private String title;
+ @Column(name = "link")
+ private String link;
+
@Column(name = "description")
private String description;
+ public String getLink() { return link; }
+
+ public void setLink(String link) { this.link = link; }
+
public Integer getLtId() {
return ltId;
}
diff --git a/src/main/java/ru/javacourse/sourcecodebot/repository/LessonRepository.java b/src/main/java/ru/javacourse/sourcecodebot/repository/LessonRepository.java
index 180eac1..09669c7 100644
--- a/src/main/java/ru/javacourse/sourcecodebot/repository/LessonRepository.java
+++ b/src/main/java/ru/javacourse/sourcecodebot/repository/LessonRepository.java
@@ -4,4 +4,7 @@
import ru.javacourse.sourcecodebot.model.Lesson;
public interface LessonRepository extends JpaRepository {
+
+ public Lesson findLessonByChapterId(String chapterId);
+
}
diff --git a/src/main/java/ru/javacourse/sourcecodebot/telegram/handlers/InterviewHandler.java b/src/main/java/ru/javacourse/sourcecodebot/telegram/handlers/InterviewHandler.java
index c2ded6f..ebb3eee 100644
--- a/src/main/java/ru/javacourse/sourcecodebot/telegram/handlers/InterviewHandler.java
+++ b/src/main/java/ru/javacourse/sourcecodebot/telegram/handlers/InterviewHandler.java
@@ -24,7 +24,6 @@ public SendMessage handle(Update update) {
msg.setChatId(update.getMessage().getChatId());
msg.setText(question.getTitle());
-
return msg;
}
}
diff --git a/src/main/java/ru/javacourse/sourcecodebot/telegram/handlers/LessonHandler.java b/src/main/java/ru/javacourse/sourcecodebot/telegram/handlers/LessonHandler.java
new file mode 100644
index 0000000..55e9068
--- /dev/null
+++ b/src/main/java/ru/javacourse/sourcecodebot/telegram/handlers/LessonHandler.java
@@ -0,0 +1,32 @@
+package ru.javacourse.sourcecodebot.telegram.handlers;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
+import org.telegram.telegrambots.meta.api.objects.Update;
+import ru.javacourse.sourcecodebot.model.Lesson;
+import ru.javacourse.sourcecodebot.model.Resource;
+import ru.javacourse.sourcecodebot.repository.LessonRepository;
+import ru.javacourse.sourcecodebot.telegram.MessageHandler;
+
+public class LessonHandler implements MessageHandler {
+
+ @Autowired
+ private LessonRepository repository;
+
+ @Override
+ public SendMessage handle(Update update) {
+ Lesson lesson = repository.findLessonByChapterId("2.1");
+ Resource resource = lesson.getResources();
+
+ SendMessage msg = new SendMessage();
+ msg.enableMarkdown(true);
+ msg.setChatId(update.getMessage().getChatId());
+
+ if (resource != null) {
+ msg.setText(resource.getLink());
+ } else {
+ msg.setText("123");
+ }
+ return msg;
+ }
+}
diff --git a/src/test/java/ru/javacourse/sourcecodebot/repository/LessonRepositoryTest.java b/src/test/java/ru/javacourse/sourcecodebot/repository/LessonRepositoryTest.java
index bca13e6..7db7aa5 100644
--- a/src/test/java/ru/javacourse/sourcecodebot/repository/LessonRepositoryTest.java
+++ b/src/test/java/ru/javacourse/sourcecodebot/repository/LessonRepositoryTest.java
@@ -5,6 +5,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import ru.javacourse.sourcecodebot.model.Lesson;
+import ru.javacourse.sourcecodebot.model.Resource;
import java.util.List;
@@ -19,4 +20,11 @@ public void testFind() {
List lessons = repository.findAll();
Assertions.assertNotEquals(0, lessons.size());
}
+
+ @Test
+ public void testFindByChapter() {
+ Lesson lesson = repository.findLessonByChapterId("2.1");
+ Resource resources = lesson.getResources();
+ Assertions.assertNotNull(lesson);
+ }
}
diff --git a/src/test/java/ru/javacourse/sourcecodebot/repository/ResourceRepositoryTest.java b/src/test/java/ru/javacourse/sourcecodebot/repository/ResourceRepositoryTest.java
index 1b2aa93..624e540 100644
--- a/src/test/java/ru/javacourse/sourcecodebot/repository/ResourceRepositoryTest.java
+++ b/src/test/java/ru/javacourse/sourcecodebot/repository/ResourceRepositoryTest.java
@@ -15,7 +15,7 @@ public class ResourceRepositoryTest {
private ResourceRepository repository;
@Test
- public void testFind() {
+ public void testFindAll() {
List resources = repository.findAll();
Assertions.assertNotEquals(0, resources.size());
}