From e1a85db0db724df6494653c43aa1bed34c070049 Mon Sep 17 00:00:00 2001 From: tailorsmit Date: Tue, 16 Mar 2021 12:57:57 +0530 Subject: [PATCH 1/3] to checkout a single item userid is required --- .../ecommerce/controller/UserController.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/webtutsplus/ecommerce/controller/UserController.java b/src/main/java/com/webtutsplus/ecommerce/controller/UserController.java index 471ad27..391e5da 100644 --- a/src/main/java/com/webtutsplus/ecommerce/controller/UserController.java +++ b/src/main/java/com/webtutsplus/ecommerce/controller/UserController.java @@ -1,6 +1,5 @@ package com.webtutsplus.ecommerce.controller; - import com.webtutsplus.ecommerce.dto.*; import com.webtutsplus.ecommerce.dto.user.SignInDto; import com.webtutsplus.ecommerce.dto.user.SignInResponseDto; @@ -12,12 +11,14 @@ import com.webtutsplus.ecommerce.service.AuthenticationService; import com.webtutsplus.ecommerce.service.UserService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; -@RequestMapping("user") @CrossOrigin(origins = "*", allowedHeaders = "*") +@RequestMapping("user") @RestController public class UserController { @@ -46,7 +47,18 @@ public ResponseDto Signup(@RequestBody SignupDto signupDto) throws CustomExcepti public SignInResponseDto Signup(@RequestBody SignInDto signInDto) throws CustomException { return userService.signIn(signInDto); } + @GetMapping("/getuserid") + public ResponseEntity getid(@RequestParam("token") String token) throws AuthenticationFailException,NullPointerException { + try { + if(authenticationService.getUser(token).getId() != null) + return new ResponseEntity(authenticationService.getUser(token).getId(), HttpStatus.OK); + }catch (NullPointerException ignored) { + } + + + return new ResponseEntity(-1,HttpStatus.OK); + } // @PostMapping("/updateUser") // public ResponseDto updateUser(@RequestParam("token") String token, @RequestBody UserUpdateDto userUpdateDto) { // authenticationService.authenticate(token); From 178a1cdba1e40aa0cdb61d55786c85d5b255f6a6 Mon Sep 17 00:00:00 2001 From: tailorsmit Date: Tue, 16 Mar 2021 14:29:44 +0530 Subject: [PATCH 2/3] checkout session for single item buy now option added and tested. --- .../ecommerce/controller/OrderController.java | 19 ++++++++++++++++-- .../ecommerce/service/OrderService.java | 20 +++++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/webtutsplus/ecommerce/controller/OrderController.java b/src/main/java/com/webtutsplus/ecommerce/controller/OrderController.java index f934620..4a59d0d 100644 --- a/src/main/java/com/webtutsplus/ecommerce/controller/OrderController.java +++ b/src/main/java/com/webtutsplus/ecommerce/controller/OrderController.java @@ -18,6 +18,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import springfox.documentation.spring.web.json.Json; import java.util.*; @@ -45,14 +46,28 @@ public ResponseEntity> getAllOrders(@RequestParam("token") String to authenticationService.authenticate(token); int userId = authenticationService.getUser(token).getId(); List orderDtoList = orderService.listOrders(userId); - return new ResponseEntity>(orderDtoList,HttpStatus.OK); + return new ResponseEntity>(orderDtoList, HttpStatus.OK); } @PostMapping("/create-checkout-session") public ResponseEntity checkoutList(@RequestBody List checkoutItemDtoList) throws StripeException { Session session = orderService.createSession(checkoutItemDtoList); StripeResponse stripeResponse = new StripeResponse(session.getId()); - return new ResponseEntity(stripeResponse,HttpStatus.OK); + return new ResponseEntity(stripeResponse, HttpStatus.OK); + } + + @PostMapping("/single-checkout") + public ResponseEntity singleitemcheckout(@RequestBody CheckoutItemDto checkoutItemDto, @RequestParam String token) throws StripeException { + + try { + int id = authenticationService.getUser(token).getId(); + + } catch (NullPointerException ignored) { + return ResponseEntity.notFound().build(); + } + Session session = orderService.createSessionforSingleItem(checkoutItemDto); + StripeResponse stripeResponse = new StripeResponse(session.getId()); + return new ResponseEntity(stripeResponse, HttpStatus.OK); } } diff --git a/src/main/java/com/webtutsplus/ecommerce/service/OrderService.java b/src/main/java/com/webtutsplus/ecommerce/service/OrderService.java index 71ad91d..a3f5d03 100644 --- a/src/main/java/com/webtutsplus/ecommerce/service/OrderService.java +++ b/src/main/java/com/webtutsplus/ecommerce/service/OrderService.java @@ -119,6 +119,26 @@ public Session createSession(List checkoutItemDtoList) throws S .build(); return Session.create(params); } + public Session createSessionforSingleItem (CheckoutItemDto checkoutItemDto) throws StripeException { + + String successURL = baseURL + "payment/success"; + String failedURL = baseURL + "payment/failed"; + + Stripe.apiKey = apiKey; + + List sessionItemsList = new ArrayList(); + sessionItemsList.add(createSessionLineItem(checkoutItemDto)); + + SessionCreateParams params = SessionCreateParams.builder() + .addPaymentMethodType(SessionCreateParams.PaymentMethodType.CARD) + .setMode(SessionCreateParams.Mode.PAYMENT) + .setCancelUrl(failedURL) + .addAllLineItem(sessionItemsList) + .setSuccessUrl(successURL) + .build(); + return Session.create(params); + } + } From 322266cbdd91d334c7f9e5702190fe9d3013bb29 Mon Sep 17 00:00:00 2001 From: tailorsmit Date: Tue, 16 Mar 2021 17:32:12 +0530 Subject: [PATCH 3/3] pushed the changes which are commented on PR --- .../ecommerce/controller/OrderController.java | 13 ++++--------- .../ecommerce/controller/UserController.java | 12 ------------ 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/webtutsplus/ecommerce/controller/OrderController.java b/src/main/java/com/webtutsplus/ecommerce/controller/OrderController.java index 4a59d0d..1f86f74 100644 --- a/src/main/java/com/webtutsplus/ecommerce/controller/OrderController.java +++ b/src/main/java/com/webtutsplus/ecommerce/controller/OrderController.java @@ -56,15 +56,10 @@ public ResponseEntity checkoutList(@RequestBody List(stripeResponse, HttpStatus.OK); } - @PostMapping("/single-checkout") - public ResponseEntity singleitemcheckout(@RequestBody CheckoutItemDto checkoutItemDto, @RequestParam String token) throws StripeException { - - try { - int id = authenticationService.getUser(token).getId(); - - } catch (NullPointerException ignored) { - return ResponseEntity.notFound().build(); - } + @PostMapping("/checkout-single-product") + public ResponseEntity singleitemcheckout(@RequestBody CheckoutItemDto checkoutItemDto, @RequestParam String token) throws StripeException, NullPointerException { + int id = authenticationService.getUser(token).getId(); + checkoutItemDto.setUserId(id); Session session = orderService.createSessionforSingleItem(checkoutItemDto); StripeResponse stripeResponse = new StripeResponse(session.getId()); return new ResponseEntity(stripeResponse, HttpStatus.OK); diff --git a/src/main/java/com/webtutsplus/ecommerce/controller/UserController.java b/src/main/java/com/webtutsplus/ecommerce/controller/UserController.java index 391e5da..73a2729 100644 --- a/src/main/java/com/webtutsplus/ecommerce/controller/UserController.java +++ b/src/main/java/com/webtutsplus/ecommerce/controller/UserController.java @@ -47,18 +47,6 @@ public ResponseDto Signup(@RequestBody SignupDto signupDto) throws CustomExcepti public SignInResponseDto Signup(@RequestBody SignInDto signInDto) throws CustomException { return userService.signIn(signInDto); } - @GetMapping("/getuserid") - public ResponseEntity getid(@RequestParam("token") String token) throws AuthenticationFailException,NullPointerException { - try { - if(authenticationService.getUser(token).getId() != null) - return new ResponseEntity(authenticationService.getUser(token).getId(), HttpStatus.OK); - }catch (NullPointerException ignored) { - - } - - - return new ResponseEntity(-1,HttpStatus.OK); - } // @PostMapping("/updateUser") // public ResponseDto updateUser(@RequestParam("token") String token, @RequestBody UserUpdateDto userUpdateDto) { // authenticationService.authenticate(token);