dev use authtoken
Test Workflow / test (push) Successful in 6s

This commit is contained in:
vladp
2026-02-24 11:27:56 +07:00
parent abe98fb609
commit 5460d91a6f
@@ -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();
} }
} }