source: src/main/java/mk/ukim/finki/wp/db/controller/UserSubscriptionController.java

Last change on this file was 5ea00d7, checked in by Malek Alavi <malekalavi7@…>, 8 days ago

Initial project upload

  • Property mode set to 100644
File size: 1.9 KB
Line 
1package mk.ukim.finki.wp.db.controller;
2
3import lombok.RequiredArgsConstructor;
4import mk.ukim.finki.wp.db.service.SubscriptionPlanService;
5import mk.ukim.finki.wp.db.service.UserSubscriptionService;
6import org.springframework.security.core.Authentication;
7import org.springframework.stereotype.Controller;
8import org.springframework.ui.Model;
9import org.springframework.web.bind.annotation.GetMapping;
10import org.springframework.web.bind.annotation.PathVariable;
11import org.springframework.web.bind.annotation.PostMapping;
12
13@Controller
14@RequiredArgsConstructor
15public class UserSubscriptionController {
16
17 private final UserSubscriptionService userSubscriptionService;
18 private final SubscriptionPlanService subscriptionPlanService;
19
20 @GetMapping("/user-subscription")
21 public String getUserSubscriptionPage(Model model, Authentication authentication) {
22 Object principal = authentication.getPrincipal();
23 String email = ((org.springframework.security.core.userdetails.User) principal).getUsername();
24 model.addAttribute("plans", subscriptionPlanService.findAll());
25 model.addAttribute("alreadySubscribed", userSubscriptionService.hasUserSubscription(email));
26 return "user_subscription/user_subscription";
27 }
28
29 @GetMapping("/user-subscription-payment/{id}")
30 public String getPaymentPage(@PathVariable Integer id, Model model) {
31 model.addAttribute("plan", subscriptionPlanService.findById(id));
32 return "user_subscription/user_subscription_payment";
33 }
34
35 @PostMapping("/user-subscription-payment/{id}")
36 public String subscribe(@PathVariable Integer id, Authentication authentication) {
37 Object principal = authentication.getPrincipal();
38 String email = ((org.springframework.security.core.userdetails.User) principal).getUsername();
39 userSubscriptionService.addUserSubscription(email, id);
40 return "redirect:/user-subscription";
41 }
42}
Note: See TracBrowser for help on using the repository browser.