Skip to content
Snippets Groups Projects
Commit 85f22861 authored by Petr Ježek's avatar Petr Ježek
Browse files

alive and find question by title endpoint

parent fac17c01
No related branches found
No related tags found
No related merge requests found
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="562d2e30-a3b7-48bd-bef0-7251d7e63591" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/docker-compose.yml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cz/cvut/fel/pro/emtt/App.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cz/cvut/fel/pro/emtt/model/Question.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cz/cvut/fel/pro/emtt/repository/QuestionRepository.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/application.properties" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/test/java/cz/cvut/fel/pro/emtt/AppTests.java" beforeDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
</component>
<component name="ProjectId" id="20QJ1eVOnPMF6ptSdNOoQOuHDps" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../etmt" />
<property name="project.structure.last.edited" value="Project" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.0" />
</component>
<component name="RunManager" selected="Docker.docker-compose.yml: Compose Deployment">
<configuration default="true" type="JetRunConfigurationType">
<module name="etmt" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="KotlinStandaloneScriptRunConfigurationType">
<module name="etmt" />
<option name="filePath" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="App" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true">
<module name="etmt" />
<option name="SPRING_BOOT_MAIN_CLASS" value="cz.cvut.fel.pro.emtt.App" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="docker-compose.yml: Compose Deployment" type="docker-deploy" factoryName="docker-compose.yml" temporary="true" server-name="Docker">
<deployment type="docker-compose.yml">
<settings>
<option name="sourceFilePath" value="docker-compose.yml" />
</settings>
</deployment>
<method v="2" />
</configuration>
<recent_temporary>
<list>
<item itemvalue="Docker.docker-compose.yml: Compose Deployment" />
<item itemvalue="Spring Boot.App" />
</list>
</recent_temporary>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="562d2e30-a3b7-48bd-bef0-7251d7e63591" name="Default Changelist" comment="" />
<created>1635970665167</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1635970665167</updated>
<workItem from="1635970666411" duration="2157000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
</project>
\ No newline at end of file
...@@ -3,19 +3,14 @@ package cz.cvut.fel.pro.emtt; ...@@ -3,19 +3,14 @@ package cz.cvut.fel.pro.emtt;
import cz.cvut.fel.pro.emtt.model.Question; import cz.cvut.fel.pro.emtt.model.Question;
import cz.cvut.fel.pro.emtt.repository.QuestionRepository; import cz.cvut.fel.pro.emtt.repository.QuestionRepository;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner; import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories; import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
import java.util.List; @SpringBootApplication(exclude = {
import java.util.Optional; org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class})
@SpringBootApplication
@EnableMongoRepositories @EnableMongoRepositories
@Slf4j @Slf4j
public class App { public class App {
...@@ -30,7 +25,7 @@ public class App { ...@@ -30,7 +25,7 @@ public class App {
Question q = Question.builder().title("Epic question").text("This is something epic...?").build(); Question q = Question.builder().title("Epic question").text("This is something epic...?").build();
repository.insert(q); repository.insert(q);
log.info("question with id: {} is: {}", q.getId(), repository.findById(q.getId())); log.info("question with id: {} is: {}", q.getId(), repository.findById(q.getId()));
log.info("number of questions with title: {} is: {}", q.getTitle(), repository.findQuestionsByTitle(q.getTitle()).size()); log.info("number of questions with title: {} is: {}", q.getTitle(), repository.findAllQuestionsByTitle(q.getTitle()).size());
}; };
} }
} }
package cz.cvut.fel.pro.emtt.controller;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.Optional;
@Controller
public class AppController {
@GetMapping("/alive")
public ResponseEntity<String> alive() {
return ResponseEntity.of(Optional.of("OK"));
}
}
package cz.cvut.fel.pro.emtt.controller;
import cz.cvut.fel.pro.emtt.model.Question;
import cz.cvut.fel.pro.emtt.service.QuestionService;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List;
@Controller
@AllArgsConstructor
public class QuestionController {
private QuestionService service;
@GetMapping("/questions/{title}")
public ResponseEntity<List<Question>> getQuestionByTitle(@PathVariable String title) {
return ResponseEntity.of(service.findAllQuestionsByTitle(title));
}
}
...@@ -9,6 +9,6 @@ import java.util.List; ...@@ -9,6 +9,6 @@ import java.util.List;
public interface QuestionRepository extends MongoRepository<Question, String> { public interface QuestionRepository extends MongoRepository<Question, String> {
@Query("{title:'?0'}") @Query("{title:'?0'}")
List<Question> findQuestionsByTitle(String title); List<Question> findAllQuestionsByTitle(String title);
} }
package cz.cvut.fel.pro.emtt.service;
import com.sun.istack.NotNull;
import cz.cvut.fel.pro.emtt.model.Question;
import cz.cvut.fel.pro.emtt.repository.QuestionRepository;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
@AllArgsConstructor
public class QuestionService {
private QuestionRepository repository;
public Optional<List<Question>> findAllQuestionsByTitle(@NotNull String title) {
return Optional.of(repository.findAllQuestionsByTitle(title));
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment