Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions src/main/java/com/abacatepay/AbacatePay.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,13 @@
import com.abacatepay.clients.factories.AbacatePayClientFactory;
import com.abacatepay.model.IAbacatePay;
import com.abacatepay.model.IAbacatePayBilling;
import com.abacatepay.model.IAbacatePayPixQrCode;
import com.abacatepay.model.billing.CreateBillingData;
import com.abacatepay.model.billing.CreateBillingResponse;
import com.abacatepay.model.billing.ListBillingResponse;
import com.abacatepay.model.pixqrcode.CheckPixQRCodeResponse;
import com.abacatepay.model.pixqrcode.CreatePixQRCodeData;
import com.abacatepay.model.pixqrcode.CreatePixQRCodeResponse;
import feign.FeignException;
import feign.RequestInterceptor;

Expand Down Expand Up @@ -64,4 +68,23 @@ public ListBillingResponse list() {

return new AbacatePayBilling();
}

@Override
public IAbacatePayPixQrCode pixQrCode() {

class AbacatePayPixQrCode implements IAbacatePayPixQrCode {

@Override
public CreatePixQRCodeResponse create(CreatePixQRCodeData pixQRCode) {
return client.create(pixQRCode);
}

@Override
public CheckPixQRCodeResponse check(String id) {
return client.check(id);
}
}

return new AbacatePayPixQrCode();
}
}
9 changes: 9 additions & 0 deletions src/main/java/com/abacatepay/clients/AbacatePayClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
import com.abacatepay.model.billing.CreateBillingData;
import com.abacatepay.model.billing.CreateBillingResponse;
import com.abacatepay.model.billing.ListBillingResponse;
import com.abacatepay.model.pixqrcode.CheckPixQRCodeResponse;
import com.abacatepay.model.pixqrcode.CreatePixQRCodeData;
import com.abacatepay.model.pixqrcode.CreatePixQRCodeResponse;
import feign.RequestLine;

public interface AbacatePayClient {
Expand All @@ -12,4 +15,10 @@ public interface AbacatePayClient {

@RequestLine("POST /billing/create")
CreateBillingResponse create(CreateBillingData body);

@RequestLine("GET /pixQrCode/check")
CheckPixQRCodeResponse check(String id);

@RequestLine("POST /pixQrCode/create")
CreatePixQRCodeResponse create(CreatePixQRCodeData body);
}
1 change: 1 addition & 0 deletions src/main/java/com/abacatepay/model/IAbacatePay.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@

public interface IAbacatePay {
IAbacatePayBilling billing();
IAbacatePayPixQrCode pixQrCode();
}
10 changes: 10 additions & 0 deletions src/main/java/com/abacatepay/model/IAbacatePayPixQrCode.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.abacatepay.model;

import com.abacatepay.model.pixqrcode.CheckPixQRCodeResponse;
import com.abacatepay.model.pixqrcode.CreatePixQRCodeData;
import com.abacatepay.model.pixqrcode.CreatePixQRCodeResponse;

public interface IAbacatePayPixQrCode {
CreatePixQRCodeResponse create(CreatePixQRCodeData pixQRCode);
CheckPixQRCodeResponse check(String id);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.abacatepay.model.pixqrcode;

import com.abacatepay.model.billing.BillingStatus;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Builder;
import lombok.Data;
import java.time.LocalDateTime;

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class CheckPixQRCodeResponse {

@JsonInclude(JsonInclude.Include.NON_NULL)
private CheckPixQRCodeResponseData data;

@JsonInclude(JsonInclude.Include.NON_NULL)
private Object error;

public CheckPixQRCodeResponse (Object error){
this.error = error;
}
public CheckPixQRCodeResponse (){
}
}

@Builder
class CheckPixQRCodeResponseData{
@JsonInclude(JsonInclude.Include.NON_NULL)
private BillingStatus status;

@JsonFormat(timezone = "America/Sao_Paulo", pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
private LocalDateTime expiredAt;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.abacatepay.model.pixqrcode;

import com.abacatepay.model.billing.CustomerMetadata;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;

import java.math.BigDecimal;

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class CreatePixQRCodeData {
private BigDecimal amount;
private Long expiresIn;
private String description;
private CustomerMetadata customerMetadata;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package com.abacatepay.model.pixqrcode;

import com.abacatepay.model.billing.BillingStatus;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Builder;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class CreatePixQRCodeResponse {
@JsonInclude(JsonInclude.Include.NON_NULL)
private CreatePixQRCodeResponseData data;

@JsonInclude(JsonInclude.Include.NON_NULL)
private Object error;

public CreatePixQRCodeResponse(Object error){
this.error = error;
}

public CreatePixQRCodeResponse(){
}
}

@Builder
class CreatePixQRCodeResponseData{
private String id;
private BigDecimal amount;
private BillingStatus status;
private boolean devMode;
private String brCode;
private String brCodeBase64;
private String platformFee;
@JsonFormat(timezone = "America/Sao_Paulo", pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
private LocalDateTime createdAt;
@JsonFormat(timezone = "America/Sao_Paulo", pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
private LocalDateTime updatedAt;
@JsonFormat(timezone = "America/Sao_Paulo", pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
private LocalDateTime expiresAt;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.abacatepay.model.pixqrcode;


import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;

class CheckPixQRCodeResponseTest {

@Test
void testErrorConstructor() {
CheckPixQRCodeResponse response = new CheckPixQRCodeResponse("Error occurred");
assertEquals("Error occurred", response.getError(), "Error field must be set correctly");
}

@Test
void testGettersAndSetters() {
CheckPixQRCodeResponse response = new CheckPixQRCodeResponse();
response.setError("Error occurred");
response.setData(null);

assertEquals("Error occurred", response.getError(), "Error field must be set correctly");
assertNull(response.getData());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.abacatepay.model.pixqrcode;

import com.abacatepay.model.billing.CustomerMetadata;
import org.junit.jupiter.api.Test;

import java.math.BigDecimal;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;

public class CreatePixQRCodeDataTest {
@Test
void testDefaultConstructor() {
CreatePixQRCodeData response = new CreatePixQRCodeData();
assertNull(response.getDescription());
}

@Test
void testGettersAndSetters() {
CreatePixQRCodeData response = new CreatePixQRCodeData();
response.setAmount(BigDecimal.ONE);
response.setDescription("hello world");
response.setExpiresIn(1000000L);
CustomerMetadata customerMetadata = new CustomerMetadata();
response.setCustomerMetadata(customerMetadata);

assertEquals(BigDecimal.ONE, response.getAmount());
assertEquals("hello world", response.getDescription());
assertEquals(1000000L, response.getExpiresIn());
assertEquals(response.getCustomerMetadata(), customerMetadata);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.abacatepay.model.pixqrcode;


import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;

public class CreatePixQRCodeResponseTest {
@Test
void testErrorConstructor() {
CreatePixQRCodeResponse response = new CreatePixQRCodeResponse("Error occurred");
assertEquals("Error occurred", response.getError(), "Error field must be set correctly");
}

@Test
void testGettersAndSetters() {
CreatePixQRCodeResponse response = new CreatePixQRCodeResponse();
response.setError("Error occurred");
response.setData(null);

assertEquals("Error occurred", response.getError(), "Error field must be set correctly");
assertNull(response.getData());
}
}