diff --git a/backend/src/main/java/hu/pazmany/Controller.java b/backend/src/main/java/hu/pazmany/Controller.java index 35053d7231ed1ff7c82fe8f8d5be8235bb57a931..4c2c3fde35375317b6ce1d066f394d482be53134 100644 --- a/backend/src/main/java/hu/pazmany/Controller.java +++ b/backend/src/main/java/hu/pazmany/Controller.java @@ -9,31 +9,39 @@ import org.springframework.web.bind.annotation.*; @CrossOrigin(origins = "http://localhost:3000") @RestController public class Controller { - private final UserService userService; - private final DocumentService documentService; + private final NoteStoreService noteStoreService; private final ResourceLoader resourceLoader; @Autowired - public Controller(UserService userService, DocumentService documentService, ResourceLoader resourceLoader) { - this.userService = userService; - this.documentService = documentService; + public Controller(hu.pazmany.NoteStoreService noteStoreService, ResourceLoader resourceLoader) { + this.noteStoreService = noteStoreService; this.resourceLoader = resourceLoader; } @PostMapping("/api/login") public String login(@RequestBody UserLoginDto userLoginDto) { System.out.println(userLoginDto); - return userService.authenticate(userLoginDto.getUsername(), userLoginDto.getPassword()); + return noteStoreService.authenticate(userLoginDto.getUsername(), userLoginDto.getPassword()); } @PostMapping("/api/register") public void register(@RequestBody UserLoginDto userLoginDto) { - userService.register(userLoginDto.getFullName(), userLoginDto.getUsername(), userLoginDto.getPassword()); + noteStoreService.register(userLoginDto.getFullName(), userLoginDto.getUsername(), userLoginDto.getPassword()); } @PostMapping("/api/details") public DocumentDto getDetails(@RequestBody DocumentDto documentDto) { - return documentService.getDetails(documentDto.getID(), documentDto.getSubject()); + return noteStoreService.getDetails(documentDto.getID(), documentDto.getSubject()); + } + + @PostMapping("/api/setdetails") + public void setDetails(@RequestBody DocumentDto documentDto) { + noteStoreService.setDetails(documentDto); + } + + @PostMapping("/api/addsubject") + public void addSubject(@RequestBody SubjectDto subjectDto) { + noteStoreService.addSubject(subjectDto); } @GetMapping("/download/{filename:.+}") @@ -47,9 +55,4 @@ public class Controller { .header("Content-Disposition", "attachment; filename=\"" + resource.getFilename() + "\"") .body(resource); } - -// @PostMapping("/api/setdetails") -// public void setDetails(@RequestBody DocumentDto documentDto) { -// documentService.setDetails(documentDto); -// } } \ No newline at end of file diff --git a/backend/src/main/java/hu/pazmany/DocumentRepository.java b/backend/src/main/java/hu/pazmany/DocumentRepository.java index 394bdd225936ed14879b7ba6d8dced02dd8678f2..7b97f475228efa0f374a561d1a93a13f1010421b 100644 --- a/backend/src/main/java/hu/pazmany/DocumentRepository.java +++ b/backend/src/main/java/hu/pazmany/DocumentRepository.java @@ -2,7 +2,6 @@ package hu.pazmany; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; -import java.util.Optional; public interface DocumentRepository extends JpaRepository<Document, Long>{ List<Document> findAllByUser(User user); diff --git a/backend/src/main/java/hu/pazmany/DocumentService.java b/backend/src/main/java/hu/pazmany/DocumentService.java deleted file mode 100644 index 749639ed3b378cecfcb85c4f2ce3a2fe339fd238..0000000000000000000000000000000000000000 --- a/backend/src/main/java/hu/pazmany/DocumentService.java +++ /dev/null @@ -1,63 +0,0 @@ -package hu.pazmany; - -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -public class DocumentService { - private final DocumentRepository documentRepository; - private final UserRepository userRepository; - private final SubjectRepository subjectRepository; - - public DocumentService(DocumentRepository documentRepository, UserRepository userRepository, SubjectRepository subjectRepository) { - this.documentRepository = documentRepository; - this.userRepository = userRepository; - this.subjectRepository = subjectRepository; - } - - public DocumentDto getDetails(long id, String subjectName) { - User user = new User(); - user.setUsername("kazsa"); - user.setPassword("keksz"); - user.setFullName("Kada Zsolt"); - userRepository.save(user); - - Subject subject = new Subject(); - subject.setSubjectId("PPKE-"); - subject.setName("Szofttech"); - subjectRepository.save(subject); - - Document document = new Document(); - document.setUser(user); - document.setSubject(subject); - document.setDescription("Előadás"); - document.setTitle("1. előadás"); - document.setFilepath("1.eloadas_szoftvertechnologia_2024_v1.0.pdf"); - documentRepository.save(document); - - Document result = documentRepository.findAllByUser(user).get(0); - - DocumentDto doc = new DocumentDto(); - doc.setID(result.getId()); - doc.setUser(result.getUser().getFullName()); - doc.setSubject(result.getSubject().getName()); - doc.setTitle(result.getTitle()); - doc.setDescription(result.getDescription()); - doc.setFilepath(result.getFilepath()); - - return doc; - } - -// public void setDetails(DocumentDto documentDto) { -// Document document = new Document(); -// document.setId(documentDto.getID()); -// document.setUser(userRepository.findByUsername(documentDto.getUser())); -// document.setSubject(subjectRepository.findBySubjectId(documentDto.getSubject())); -// document.setTitle(documentDto.getTitle()); -// document.setDescription(documentDto.getDescription()); -//// document.setUploaded(documentDto.getUploaded()); -// document.setFilepath(documentDto.getFilepath()); -// documentRepository.save(document); -// } -} diff --git a/backend/src/main/java/hu/pazmany/NoteStoreService.java b/backend/src/main/java/hu/pazmany/NoteStoreService.java new file mode 100644 index 0000000000000000000000000000000000000000..83f908ab039fd472e4cb88e34de44cadea05f6ca --- /dev/null +++ b/backend/src/main/java/hu/pazmany/NoteStoreService.java @@ -0,0 +1,68 @@ +package hu.pazmany; + +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; + +@Service +public class NoteStoreService { + private final DocumentRepository documentRepository; + private final UserRepository userRepository; + private final SubjectRepository subjectRepository; + + public NoteStoreService(DocumentRepository documentRepository, UserRepository userRepository, SubjectRepository subjectRepository) { + this.documentRepository = documentRepository; + this.userRepository = userRepository; + this.subjectRepository = subjectRepository; + } + + public String authenticate(String username, String password) { + User user = userRepository.findByUsername(username); + if (user != null && user.getPassword().equals(password)) { + return user.getFullName(); + } + return "Helytelen felhasználónév vagy jelszó!"; + } + + public void register(String fullName, String username, String password) { + User user = new User(); + user.setFullName(fullName); + user.setUsername(username); + user.setPassword(password); + userRepository.save(user); + } + + public DocumentDto getDetails(long id, String subjectName) { + Document result = documentRepository.findAllBySubject(subjectRepository.findBySubjectId(subjectName)).get((int) id); + + DocumentDto doc = new DocumentDto(); + doc.setID(result.getId()); + doc.setUser(result.getUser().getFullName()); + doc.setSubject(result.getSubject().getName()); + doc.setTitle(result.getTitle()); + doc.setUploaded(result.getUploaded().toString()); + doc.setDescription(result.getDescription()); + doc.setFilepath(result.getFilepath()); + + return doc; + } + + public void setDetails(DocumentDto documentDto) { + Document document = new Document(); + document.setId(documentDto.getID()); + document.setUser(userRepository.findByUsername(documentDto.getUser())); + document.setSubject(subjectRepository.findBySubjectId(documentDto.getSubject())); + document.setTitle(documentDto.getTitle()); + document.setDescription(documentDto.getDescription()); + document.setUploaded(LocalDateTime.now()); + document.setFilepath(documentDto.getFilepath()); + documentRepository.save(document); + } + + public void addSubject(SubjectDto subjectDto) { + Subject subject = new Subject(); + subject.setSubjectId(subjectDto.getSubjectId()); + subject.setName(subjectDto.getName()); + subjectRepository.save(subject); + } +} diff --git a/backend/src/main/java/hu/pazmany/SubjectDto.java b/backend/src/main/java/hu/pazmany/SubjectDto.java new file mode 100644 index 0000000000000000000000000000000000000000..9ed9464c8f59226cc470969381e53a64bb4a36f9 --- /dev/null +++ b/backend/src/main/java/hu/pazmany/SubjectDto.java @@ -0,0 +1,19 @@ +package hu.pazmany; + +public class SubjectDto { + private String subjectId; + private String name; + + public String getSubjectId() { + return subjectId; + } + public void setSubjectId(String subjectId) { + this.subjectId = subjectId; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } +} diff --git a/backend/src/main/java/hu/pazmany/UserService.java b/backend/src/main/java/hu/pazmany/UserService.java deleted file mode 100644 index ea3b4a204400ad2591222c405dce469c4e6351d1..0000000000000000000000000000000000000000 --- a/backend/src/main/java/hu/pazmany/UserService.java +++ /dev/null @@ -1,28 +0,0 @@ -package hu.pazmany; - -import org.springframework.stereotype.Service; - -@Service -public class UserService { - private final UserRepository userRepository; - - public UserService(UserRepository userRepository) { - this.userRepository = userRepository; - } - - public String authenticate(String username, String password) { - User user = userRepository.findByUsername(username); - if (user != null && user.getPassword().equals(password)) { - return user.getFullName(); - } - return "Helytelen felhasználónév vagy jelszó!"; - } - - public void register(String fullName, String username, String password) { - User user = new User(); - user.setFullName(fullName); - user.setUsername(username); - user.setPassword(password); - userRepository.save(user); - } -} diff --git a/backend/src/main/resources/3.eloadas_szoftvertechnologia_2024_v1.0.pdf b/backend/src/main/resources/3.eloadas_szoftvertechnologia_2024_v1.0.pdf new file mode 100644 index 0000000000000000000000000000000000000000..db91337e6f21b510b058d1a659294b35092ab17b Binary files /dev/null and b/backend/src/main/resources/3.eloadas_szoftvertechnologia_2024_v1.0.pdf differ diff --git a/frontend/src/components/browse-komponens.vue b/frontend/src/components/browse-komponens.vue index 92af67ab677eb7f7494f46e2d91aa67e8d5653b3..4f8cd7259bcb6e1df3a1472f82f26dc20d1f29c5 100644 --- a/frontend/src/components/browse-komponens.vue +++ b/frontend/src/components/browse-komponens.vue @@ -9,7 +9,7 @@ const description = ref("Jegyzet leírása") let fileName = ref("") function getDocumentDetails(id) { - axios.post('http://localhost:8080/api/details', {id: id, subject: "Szofttech"}) + axios.post('http://localhost:8080/api/details', {id: id, subject: "szofttech"}) .then(response => { console.log(response.data) title.value = response.data["title"] @@ -22,19 +22,35 @@ function getDocumentDetails(id) { }); } -// axios.post('http://localhost:8080/api/setdetails', { -// id: 0, -// user: "kazso", -// subject: "szofttech", -// title: "1. előadás", -// description: "hehe", -// uploaded: "idk", -// filepath: "documents/1.eloadas_szoftvertechnologia_2024_v1.0.pdf" -// }).then(response => { -// console.log(response.data) -// }).catch(error => { -// console.log(error); -// }); +function registerUser(credentials) { + axios.post('http://localhost:8080/api/register', credentials) + .then(response => { + console.log("Sikeres regisztráció!") + }) + .catch(error => { + console.error('Sikertelen regisztráció!', error); + }); +} + +// Prepopulating the database +registerUser({fullName: 'Kada Zsolt', username: 'kazso', password: 'keksz'}) +axios.post('http://localhost:8080/api/addsubject', {subjectId: "szofttech", name: "Szoftver Technológia"}) +axios.post('http://localhost:8080/api/setdetails', { + id: 1, + user: "kazso", + subject: "szofttech", + title: "1. előadás", + description: "tehe", + filepath: "1.eloadas_szoftvertechnologia_2024_v1.0.pdf" +}) +axios.post('http://localhost:8080/api/setdetails', { + id: 1, + user: "kazso", + subject: "szofttech", + title: "3. előadás", + description: "tehee", + filepath: "3.eloadas_szoftvertechnologia_2024_v1.0.pdf" +}) function downloadFile(filename) { console.log("Filename:", filename); @@ -51,7 +67,7 @@ function downloadFile(filename) { document.body.appendChild(link); link.click(); document.body.removeChild(link); - window.URL.revokeObjectURL(url); // Clean up + window.URL.revokeObjectURL(url); }) .catch(error => console.error('Download error:', error)); } @@ -63,10 +79,10 @@ function downloadFile(filename) { <main class="browse"> <ul class="browse-list"> <li class="module">Modul 1</li> - <li id="0" @click=getDocumentDetails(0)>Jegyzet</li> - <li>Jegyzet</li> + <li @click=getDocumentDetails(0)>Szofttech ead 1</li> + <li @click=getDocumentDetails(1)>Szofttech ead 3</li> <li class="module">Modul 2</li> - <li>Jegyzet</li> + <li>Másik jegyzet</li> </ul> </main> <main>