source: Prototype Application/Paw5/src/main/java/finki/paw5/web/controllers/PostController.java@ f194b4e

main
Last change on this file since f194b4e was 4103eaa, checked in by SazdovaEkaterina <sazdovaekaterina@…>, 16 months ago

create post for existing pet + disable form if selecting from list

  • Property mode set to 100644
File size: 2.8 KB
Line 
1package finki.paw5.web.controllers;
2
3import finki.paw5.model.entities.Employee;
4import finki.paw5.model.entities.Pet;
5import finki.paw5.model.entities.Post;
6import finki.paw5.model.entities.User;
7import finki.paw5.model.enumerations.AgeGroup;
8import finki.paw5.model.enumerations.Gender;
9import finki.paw5.model.enumerations.Size;
10import finki.paw5.model.enumerations.Species;
11import finki.paw5.service.PetService;
12import finki.paw5.service.PostService;
13import jakarta.servlet.http.HttpServletRequest;
14import org.springframework.stereotype.Controller;
15import org.springframework.ui.Model;
16import org.springframework.web.bind.annotation.GetMapping;
17import org.springframework.web.bind.annotation.PostMapping;
18import org.springframework.web.bind.annotation.RequestParam;
19
20import java.time.LocalDate;
21
22@Controller
23public class PostController {
24
25 private final PostService postService;
26 private final PetService petService;
27
28 public PostController(PostService postService, PetService petService) {
29 this.postService = postService;
30 this.petService = petService;
31 }
32
33 @GetMapping("/create-post")
34 public String get(Model model) {
35 model.addAttribute("pets", this.petService.listpets());
36 return "create-post";
37 }
38
39 @PostMapping("/submit-post")
40 public String savePost(@RequestParam(required = false) Integer petId,
41 @RequestParam(required = false) boolean newPetCheckbox,
42 @RequestParam(required = false) String name,
43 @RequestParam(required = false) String gender,
44 @RequestParam(required = false) String ageGroup,
45 @RequestParam(required = false) String size,
46 @RequestParam(required = false) String species,
47 @RequestParam(required = false) String breed,
48 @RequestParam(required = false) String imageUrl,
49 @RequestParam(required = false) boolean canBeFostered,
50 HttpServletRequest request) {
51
52 Employee employee = (Employee) request.getSession().getAttribute("user");
53
54 if(newPetCheckbox == true){
55
56 Pet newPet = new Pet(imageUrl, AgeGroup.valueOf(ageGroup), Size.valueOf(size), breed, name, Species.valueOf(species), Gender.valueOf(gender), canBeFostered, null, employee.getShelterId());
57 this.petService.save(newPet);
58
59 Post post = new Post(LocalDate.now(), imageUrl, newPet.getId(), null, employee.getId());
60 this.postService.save(post);
61
62 } else{
63
64 Pet selectedPet = this.petService.findById(petId);
65
66 Post post = new Post(LocalDate.now(), imageUrl, selectedPet.getId(), null, employee.getId());
67 this.postService.save(post);
68
69 }
70
71 return "redirect:/home";
72 }
73}
Note: See TracBrowser for help on using the repository browser.