@@ -12,11 +12,16 @@ import ru.soune.nocopy.entity.payout.BankTransferPayoutMethod;
|
|||||||
import ru.soune.nocopy.entity.payout.CardPayoutMethod;
|
import ru.soune.nocopy.entity.payout.CardPayoutMethod;
|
||||||
import ru.soune.nocopy.entity.payout.PayoutRequest;
|
import ru.soune.nocopy.entity.payout.PayoutRequest;
|
||||||
import ru.soune.nocopy.entity.payout.PayoutType;
|
import ru.soune.nocopy.entity.payout.PayoutType;
|
||||||
|
import ru.soune.nocopy.entity.user.AuthToken;
|
||||||
|
import ru.soune.nocopy.entity.user.User;
|
||||||
|
import ru.soune.nocopy.exception.NotFoundAuthToken;
|
||||||
|
import ru.soune.nocopy.repository.AuthTokenRepository;
|
||||||
import ru.soune.nocopy.service.payout.PayoutMethodService;
|
import ru.soune.nocopy.service.payout.PayoutMethodService;
|
||||||
import ru.soune.nocopy.service.payout.PayoutRequestService;
|
import ru.soune.nocopy.service.payout.PayoutRequestService;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@@ -29,6 +34,8 @@ public class PayoutController {
|
|||||||
|
|
||||||
private final PayoutMethodService payoutMethodService;
|
private final PayoutMethodService payoutMethodService;
|
||||||
|
|
||||||
|
private final AuthTokenRepository authTokenRepository;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Create payout
|
Create payout
|
||||||
*/
|
*/
|
||||||
@@ -53,9 +60,18 @@ public class PayoutController {
|
|||||||
/*
|
/*
|
||||||
Cancel payout
|
Cancel payout
|
||||||
*/
|
*/
|
||||||
@PostMapping("/requests/{requestId}/{userId}/cancel")
|
@PostMapping("/requests/{requestId}/cancel")
|
||||||
public ResponseEntity<PayoutRequest> cancelPayoutRequest(@PathVariable Long userId, @PathVariable Long requestId) {
|
public ResponseEntity<PayoutRequest> cancelPayoutRequest(@PathVariable Long requestId,
|
||||||
PayoutRequest cancelled = payoutRequestService.cancelPayoutRequest(userId, requestId);
|
@RequestHeader("Authorization") String tokenHeader) {
|
||||||
|
String token = tokenHeader.replace("Bearer ", "");
|
||||||
|
|
||||||
|
Optional<AuthToken> tokenOptional = authTokenRepository.findByToken(token);
|
||||||
|
|
||||||
|
AuthToken authToken = tokenOptional.orElseThrow(() -> new NotFoundAuthToken("Token: " + token + "not found"));
|
||||||
|
|
||||||
|
User user = authToken.getUser();
|
||||||
|
|
||||||
|
PayoutRequest cancelled = payoutRequestService.cancelPayoutRequest(user.getId(), requestId);
|
||||||
|
|
||||||
return ResponseEntity.ok(cancelled);
|
return ResponseEntity.ok(cancelled);
|
||||||
}
|
}
|
||||||
@@ -63,25 +79,50 @@ public class PayoutController {
|
|||||||
/*
|
/*
|
||||||
Get user payouts
|
Get user payouts
|
||||||
*/
|
*/
|
||||||
@GetMapping("/requests/{userId}")
|
@GetMapping("/requests")
|
||||||
public ResponseEntity<List<PayoutRequest>> getUserRequests(@PathVariable Long userId) {
|
public ResponseEntity<List<PayoutRequest>> getUserRequests(@RequestHeader("Authorization") String tokenHeader) {
|
||||||
return ResponseEntity.ok(payoutRequestService.getUserPayoutRequests(userId));
|
String token = tokenHeader.replace("Bearer ", "");
|
||||||
|
|
||||||
|
Optional<AuthToken> tokenOptional = authTokenRepository.findByToken(token);
|
||||||
|
|
||||||
|
AuthToken authToken = tokenOptional.orElseThrow(() -> new NotFoundAuthToken("Token: " + token + "not found"));
|
||||||
|
|
||||||
|
User user = authToken.getUser();
|
||||||
|
|
||||||
|
return ResponseEntity.ok(payoutRequestService.getUserPayoutRequests(user.getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Get payout by id
|
Get payout by id
|
||||||
*/
|
*/
|
||||||
@GetMapping("/requests/{requestId}/{userId}")
|
@GetMapping("/requests/{requestId}")
|
||||||
public ResponseEntity<PayoutRequest> getPayoutRequest(@PathVariable Long userId, @PathVariable Long requestId) {
|
public ResponseEntity<PayoutRequest> getPayoutRequest(@PathVariable Long requestId,
|
||||||
return ResponseEntity.ok(payoutRequestService.getPayoutRequest(userId, requestId));
|
@RequestHeader("Authorization") String tokenHeader) {
|
||||||
|
String token = tokenHeader.replace("Bearer ", "");
|
||||||
|
|
||||||
|
Optional<AuthToken> tokenOptional = authTokenRepository.findByToken(token);
|
||||||
|
|
||||||
|
AuthToken authToken = tokenOptional.orElseThrow(() -> new NotFoundAuthToken("Token: " + token + "not found"));
|
||||||
|
|
||||||
|
User user = authToken.getUser();
|
||||||
|
|
||||||
|
return ResponseEntity.ok(payoutRequestService.getPayoutRequest(user.getId(), requestId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Get payout by id
|
Get payout by id
|
||||||
*/
|
*/
|
||||||
@GetMapping("/payout-method/{userId}")
|
@GetMapping("/payout-method")
|
||||||
public ResponseEntity<List<PayoutMethodDTO>> getUserMethods(@PathVariable Long userId) {
|
public ResponseEntity<List<PayoutMethodDTO>> getUserMethods(@RequestHeader("Authorization") String tokenHeader) {
|
||||||
return ResponseEntity.ok(payoutMethodService.getUserMethods(userId));
|
String token = tokenHeader.replace("Bearer ", "");
|
||||||
|
|
||||||
|
Optional<AuthToken> tokenOptional = authTokenRepository.findByToken(token);
|
||||||
|
|
||||||
|
AuthToken authToken = tokenOptional.orElseThrow(() -> new NotFoundAuthToken("Token: " + token + "not found"));
|
||||||
|
|
||||||
|
User user = authToken.getUser();
|
||||||
|
|
||||||
|
return ResponseEntity.ok(payoutMethodService.getUserMethods(user.getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -101,10 +142,19 @@ public class PayoutController {
|
|||||||
/*
|
/*
|
||||||
add card method by userId
|
add card method by userId
|
||||||
*/
|
*/
|
||||||
@PostMapping("/payout-method/card/{userId}")
|
@PostMapping("/payout-method/card")
|
||||||
public ResponseEntity<PayoutMethodDTO> addCardMethod(@PathVariable Long userId,
|
public ResponseEntity<PayoutMethodDTO> addCardMethod(@Valid @RequestBody AddCardRequest request,
|
||||||
@Valid @RequestBody AddCardRequest request) {
|
@RequestHeader("Authorization") String tokenHeader) {
|
||||||
CardPayoutMethod method = payoutMethodService.addCardMethod(userId, request);
|
String token = tokenHeader.replace("Bearer ", "");
|
||||||
|
|
||||||
|
Optional<AuthToken> tokenOptional = authTokenRepository.findByToken(token);
|
||||||
|
|
||||||
|
AuthToken authToken = tokenOptional.orElseThrow(() -> new NotFoundAuthToken("Token: " + token + "not found"));
|
||||||
|
|
||||||
|
User user = authToken.getUser();
|
||||||
|
|
||||||
|
CardPayoutMethod method = payoutMethodService.addCardMethod(user.getId(), request);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(payoutMethodService.convertToDto(method));
|
.body(payoutMethodService.convertToDto(method));
|
||||||
}
|
}
|
||||||
@@ -112,10 +162,19 @@ public class PayoutController {
|
|||||||
/*
|
/*
|
||||||
add bank payout-method
|
add bank payout-method
|
||||||
*/
|
*/
|
||||||
@PostMapping("/payout-method/bank-transfer/{userId}")
|
@PostMapping("/payout-method/bank-transfer")
|
||||||
public ResponseEntity<PayoutMethodDTO> addBankTransferMethod(@PathVariable Long userId,
|
public ResponseEntity<PayoutMethodDTO> addBankTransferMethod(@Valid @RequestBody AddBankTransferRequest request,
|
||||||
@Valid @RequestBody AddBankTransferRequest request) {
|
@RequestHeader("Authorization") String tokenHeader) {
|
||||||
BankTransferPayoutMethod method = payoutMethodService.addBankTransferMethod(userId, request);
|
String token = tokenHeader.replace("Bearer ", "");
|
||||||
|
|
||||||
|
Optional<AuthToken> tokenOptional = authTokenRepository.findByToken(token);
|
||||||
|
|
||||||
|
AuthToken authToken = tokenOptional.orElseThrow(() -> new NotFoundAuthToken("Token: " + token + "not found"));
|
||||||
|
|
||||||
|
User user = authToken.getUser();
|
||||||
|
|
||||||
|
BankTransferPayoutMethod method = payoutMethodService.addBankTransferMethod(user.getId(), request);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(payoutMethodService.convertToDto(method));
|
.body(payoutMethodService.convertToDto(method));
|
||||||
}
|
}
|
||||||
@@ -124,10 +183,19 @@ public class PayoutController {
|
|||||||
/*
|
/*
|
||||||
set default bank payout-method
|
set default bank payout-method
|
||||||
*/
|
*/
|
||||||
@PutMapping("/payout-method/{userId}/{methodId}/default")
|
@PutMapping("/payout-method/{methodId}/default")
|
||||||
public ResponseEntity<Void> setDefaultMethod(@PathVariable Long userId, @PathVariable Long methodId) {
|
public ResponseEntity<Void> setDefaultMethod(@PathVariable Long methodId,
|
||||||
|
@RequestHeader("Authorization") String tokenHeader) {
|
||||||
|
String token = tokenHeader.replace("Bearer ", "");
|
||||||
|
|
||||||
|
Optional<AuthToken> tokenOptional = authTokenRepository.findByToken(token);
|
||||||
|
|
||||||
|
AuthToken authToken = tokenOptional.orElseThrow(() -> new NotFoundAuthToken("Token: " + token + "not found"));
|
||||||
|
|
||||||
|
User user = authToken.getUser();
|
||||||
|
|
||||||
|
payoutMethodService.setDefaultMethod(user.getId(), methodId);
|
||||||
|
|
||||||
payoutMethodService.setDefaultMethod(userId, methodId);
|
|
||||||
return ResponseEntity.ok().build();
|
return ResponseEntity.ok().build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user