forked from almeidawilliam/proposta
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
9 changed files
with
223 additions
and
3 deletions.
There are no files selected for viewing
21 changes: 21 additions & 0 deletions
21
...in/java/br/com/zupacademy/gabriela/proposal/creditCard/wallet/AssociateWalletRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package br.com.zupacademy.gabriela.proposal.creditCard.wallet; | ||
|
||
import br.com.zupacademy.gabriela.proposal.creditCard.CreditCard; | ||
import com.fasterxml.jackson.annotation.JsonProperty; | ||
|
||
import javax.validation.constraints.Email; | ||
import javax.validation.constraints.NotBlank; | ||
|
||
public class AssociateWalletRequest { | ||
private final String email; | ||
|
||
@NotBlank | ||
public AssociateWalletRequest(@JsonProperty("email") String email) { | ||
this.email = email; | ||
} | ||
|
||
public CreditCardWallet convert(CreditCard creditCard, Wallets wallets){ | ||
return new CreditCardWallet(creditCard, wallets, email); | ||
} | ||
} |
39 changes: 39 additions & 0 deletions
39
...n/java/br/com/zupacademy/gabriela/proposal/creditCard/wallet/AssociateWalletResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
package br.com.zupacademy.gabriela.proposal.creditCard.wallet; | ||
|
||
public class AssociateWalletResponse { | ||
|
||
private final Long id; | ||
private final Wallets wallet; | ||
private final String email; | ||
private final String creditCardNumber; | ||
private final Long creditCardId; | ||
|
||
|
||
public AssociateWalletResponse(CreditCardWallet creditCardWallet) { | ||
this.id = creditCardWallet.getId(); | ||
this.wallet = creditCardWallet.getWallet(); | ||
this.email = creditCardWallet.getEmailObfuscated(); | ||
this.creditCardNumber = creditCardWallet.getCreditCardNumberObfuscated(); | ||
this.creditCardId = creditCardWallet.getCreditCardId(); | ||
} | ||
|
||
public Long getId() { | ||
return id; | ||
} | ||
|
||
public Wallets getWallet() { | ||
return wallet; | ||
} | ||
|
||
public String getEmail() { | ||
return email; | ||
} | ||
|
||
public String getCreditCardNumber() { | ||
return creditCardNumber; | ||
} | ||
|
||
public Long getCreditCardId() { | ||
return creditCardId; | ||
} | ||
} |
63 changes: 63 additions & 0 deletions
63
src/main/java/br/com/zupacademy/gabriela/proposal/creditCard/wallet/CreditCardWallet.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
package br.com.zupacademy.gabriela.proposal.creditCard.wallet; | ||
|
||
import br.com.zupacademy.gabriela.proposal.creditCard.CreditCard; | ||
|
||
import javax.persistence.*; | ||
|
||
import static javax.persistence.GenerationType.SEQUENCE; | ||
|
||
@Entity | ||
public class CreditCardWallet { | ||
@Id | ||
@SequenceGenerator( | ||
name = "credit_card_wallet_id_sequence", | ||
sequenceName = "credit_card_wallet_id_sequence", | ||
allocationSize = 1 | ||
) | ||
@GeneratedValue(strategy = SEQUENCE, generator = "credit_card_wallet_id_sequence") | ||
private Long id; | ||
|
||
@OneToOne | ||
@JoinColumn( | ||
foreignKey = @ForeignKey(name = "credit_card_wallet_fk") | ||
) | ||
private CreditCard creditCard; | ||
|
||
private Wallets wallet; | ||
|
||
private String email; | ||
|
||
public CreditCardWallet(CreditCard creditCard, Wallets wallet, String email) { | ||
this.creditCard = creditCard; | ||
this.wallet = wallet; | ||
this.email = email; | ||
} | ||
|
||
@Deprecated | ||
protected CreditCardWallet() { | ||
} | ||
|
||
public Long getId() { | ||
return id; | ||
} | ||
|
||
public Wallets getWallet() { | ||
return wallet; | ||
} | ||
|
||
public String getEmail() { | ||
return email; | ||
} | ||
|
||
public String getEmailObfuscated() { | ||
return email; | ||
} | ||
|
||
public String getCreditCardNumberObfuscated() { | ||
return creditCard.getNumberObfuscated(); | ||
} | ||
|
||
public Long getCreditCardId() { | ||
return creditCard.getId(); | ||
} | ||
} |
47 changes: 47 additions & 0 deletions
47
...ava/br/com/zupacademy/gabriela/proposal/creditCard/wallet/CreditCardWalletController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
package br.com.zupacademy.gabriela.proposal.creditCard.wallet; | ||
|
||
import br.com.zupacademy.gabriela.proposal.creditCard.CreditCard; | ||
import br.com.zupacademy.gabriela.proposal.creditCard.CreditCardService; | ||
import br.com.zupacademy.gabriela.proposal.services.CreditCardService.AssociateWalletExternalApiRequest; | ||
import br.com.zupacademy.gabriela.proposal.services.CreditCardService.CreditCardApiClient; | ||
import org.springframework.beans.factory.annotation.Autowired; | ||
import org.springframework.http.ResponseEntity; | ||
import org.springframework.web.bind.annotation.*; | ||
|
||
import javax.validation.Valid; | ||
|
||
@RestController | ||
@RequestMapping("/api/credit-cards/{creditCardId}/wallet/{wallet}") | ||
public class CreditCardWalletController { | ||
|
||
private final CreditCardService creditCardService; | ||
private final CreditCardApiClient creditCardApiClient; | ||
private final CreditCardWalletRepository cardWalletRepository; | ||
|
||
@Autowired | ||
public CreditCardWalletController(CreditCardService creditCardService, CreditCardApiClient creditCardApiClient, CreditCardWalletRepository cardWalletRepository) { | ||
this.creditCardService = creditCardService; | ||
this.creditCardApiClient = creditCardApiClient; | ||
this.cardWalletRepository = cardWalletRepository; | ||
} | ||
|
||
@PostMapping | ||
ResponseEntity<AssociateWalletResponse> associateWallet( | ||
@PathVariable Long creditCardId, | ||
@PathVariable Wallets wallet, | ||
@Valid @RequestBody AssociateWalletRequest request) throws Exception { | ||
|
||
CreditCard creditCard = creditCardService.obtainCreditCard(creditCardId); | ||
|
||
CreditCardWallet creditCardWallet = request.convert(creditCard, wallet); | ||
AssociateWalletExternalApiRequest associateWalletExternalApiRequest = new AssociateWalletExternalApiRequest(creditCardWallet.getEmail(), wallet); | ||
|
||
String number = creditCard.getNumber(); | ||
|
||
creditCardApiClient.associateWallet(number, associateWalletExternalApiRequest); | ||
|
||
cardWalletRepository.save(creditCardWallet); | ||
|
||
return ResponseEntity.ok(new AssociateWalletResponse(creditCardWallet)); | ||
} | ||
} |
6 changes: 6 additions & 0 deletions
6
...ava/br/com/zupacademy/gabriela/proposal/creditCard/wallet/CreditCardWalletRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
package br.com.zupacademy.gabriela.proposal.creditCard.wallet; | ||
|
||
import org.springframework.data.repository.CrudRepository; | ||
|
||
public interface CreditCardWalletRepository extends CrudRepository<CreditCardWallet, Long> { | ||
} |
5 changes: 5 additions & 0 deletions
5
src/main/java/br/com/zupacademy/gabriela/proposal/creditCard/wallet/Wallets.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package br.com.zupacademy.gabriela.proposal.creditCard.wallet; | ||
|
||
public enum Wallets { | ||
PAYPAL | ||
} |
22 changes: 22 additions & 0 deletions
22
...ademy/gabriela/proposal/services/CreditCardService/AssociateWalletExternalApiRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
package br.com.zupacademy.gabriela.proposal.services.CreditCardService; | ||
|
||
import br.com.zupacademy.gabriela.proposal.creditCard.wallet.Wallets; | ||
import com.fasterxml.jackson.annotation.JsonProperty; | ||
|
||
public class AssociateWalletExternalApiRequest { | ||
private final String email; | ||
private final String carteira; | ||
|
||
public AssociateWalletExternalApiRequest(@JsonProperty("email") String email, Wallets carteira) { | ||
this.email = email; | ||
this.carteira = carteira.toString(); | ||
} | ||
|
||
public String getEmail() { | ||
return email; | ||
} | ||
|
||
public String getCarteira() { | ||
return carteira; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters