Skip to content

Commit a66a988

Browse files
Add swagger annotations (#125)
1 parent b6556b7 commit a66a988

26 files changed

+178
-15
lines changed

pom.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,17 @@
9292
<version>${quarkus.version}</version>
9393
</dependency>
9494

95+
<dependency>
96+
<groupId>com.fasterxml.jackson.core</groupId>
97+
<artifactId>jackson-databind</artifactId>
98+
<version>2.13.3</version>
99+
</dependency>
100+
<dependency>
101+
<groupId>io.swagger.core.v3</groupId>
102+
<artifactId>swagger-annotations</artifactId>
103+
<version>2.2.4</version>
104+
</dependency>
105+
95106
<dependency>
96107
<groupId>org.junit.jupiter</groupId>
97108
<artifactId>junit-jupiter-engine</artifactId>

src/main/java/io/github/project/openubl/xbuilder/content/catalogs/Catalog.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ public interface Catalog {
2525
new IllegalStateException("No se pudo convertir el valor del catálogo");
2626

2727
/**
28-
* @param <T> Class you want to search for
28+
* @param <T> Class you want to search for
2929
* @param enumType class you want to search for
30-
* @param code the code or Enum value
30+
* @param code the code or Enum value
3131
* @return an instance of Catalog which is equal to ValueOf or contains the same code
3232
*/
3333
static <T extends Catalog> Optional<T> valueOfCode(Class<T> enumType, String code) {

src/main/java/io/github/project/openubl/xbuilder/content/models/common/Cliente.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package io.github.project.openubl.xbuilder.content.models.common;
1818

1919
import io.github.project.openubl.xbuilder.content.catalogs.Catalog6;
20+
import io.swagger.v3.oas.annotations.media.Schema;
2021
import lombok.AllArgsConstructor;
2122
import lombok.Builder;
2223
import lombok.Data;
@@ -40,18 +41,21 @@ public class Cliente {
4041
* <p>
4142
* Valores válidos: {@link Catalog6}
4243
*/
44+
@Schema(description = "Catalogo 06", required = true)
4345
private String tipoDocumentoIdentidad;
4446

4547
/**
4648
* Número de documento de identidad del cliente.
4749
*/
50+
@Schema(required = true)
4851
private String numeroDocumentoIdentidad;
4952

5053
/**
5154
* Nombre del cliente. Si el cliente es personal natural entonces
5255
* es el nombre y apellidos de la persona; si el cliente es una persona jurídica
5356
* entonces es la razón social de la empresa.
5457
*/
58+
@Schema(required = true)
5559
private String nombre;
5660

5761
/**

src/main/java/io/github/project/openubl/xbuilder/content/models/common/Contacto.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package io.github.project.openubl.xbuilder.content.models.common;
1818

19+
import io.swagger.v3.oas.annotations.media.Schema;
1920
import lombok.AllArgsConstructor;
2021
import lombok.Builder;
2122
import lombok.Data;
@@ -35,10 +36,12 @@ public class Contacto {
3536
/**
3637
* Número telefónico
3738
*/
39+
@Schema(description = "Número telefónico")
3840
private String telefono;
3941

4042
/**
4143
* Correo electrónico
4244
*/
45+
@Schema(description = "Correo electrónico")
4346
private String email;
4447
}

src/main/java/io/github/project/openubl/xbuilder/content/models/common/Direccion.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package io.github.project.openubl.xbuilder.content.models.common;
1818

19+
import io.swagger.v3.oas.annotations.media.Schema;
1920
import lombok.AllArgsConstructor;
2021
import lombok.Builder;
2122
import lombok.Data;
@@ -35,6 +36,12 @@ public class Direccion {
3536
/**
3637
* Código de 6 dígitos que corresponden al Departamento, Provincia, y Distrito
3738
*/
39+
@Schema(
40+
description = "Código de 6 dígitos que corresponden al Departamento, Provincia, y Distrito",
41+
minLength = 6,
42+
maxLength = 6,
43+
pattern = "[0-9]+"
44+
)
3845
private String ubigeo;
3946

4047
/**
@@ -43,35 +50,51 @@ public class Direccion {
4350
* establecimiento. Tratándose del domicilio fiscal y en el caso de no poder determinar el lugar
4451
* de la venta, informar “0000”.
4552
*/
53+
@Schema(
54+
description = "Código de cuatro dígitos asignado por SUNAT, que identifica al establecimiento anexo. Dicho código se genera al momento la respectiva comunicación del establecimiento. Tratándose del domicilio fiscal y en el caso de no poder determinar el lugar de la venta, informar \"0000\"",
55+
minLength = 4,
56+
maxLength = 4,
57+
pattern = "[0-9]+"
58+
)
4659
private String codigoLocal;
4760

4861
/**
4962
* Nombre de la urbanización.
5063
*/
64+
@Schema(description = "Nombre de la urbanización.")
5165
private String urbanizacion;
5266

5367
/**
5468
* Nombre del Departamento o Región. Ejemplo: Ayacucho
5569
*/
70+
@Schema(description = "Nombre del Departamento o Región. Ejemplo: Ayacucho")
5671
private String departamento;
5772

5873
/**
5974
* Nombre de la Provincia. Ejemplo: Huamanga
6075
*/
76+
@Schema(description = "Nombre de la Provincia. Ejemplo: Huamanga")
6177
private String provincia;
6278

6379
/**
6480
* Nombre del Distrito. Ejemplo: Quinua
6581
*/
82+
@Schema(description = "Nombre del Distrito. Ejemplo: Quinua")
6683
private String distrito;
6784

6885
/**
6986
* Dirección. Ejemplo: Jirón las piedras 123
7087
*/
88+
@Schema(description = "Dirección. Ejemplo: Jirón las piedras 123")
7189
private String direccion;
7290

7391
/**
7492
* Código de 2 dígitos que corresponde al país a la que pertenece la dirección. Ejemplo: PE
7593
*/
94+
@Schema(
95+
description = "Código de 2 dígitos que corresponde al país a la que pertenece la dirección. Ejemplo: PE",
96+
minLength = 2,
97+
maxLength = 2
98+
)
7699
private String codigoPais;
77100
}

src/main/java/io/github/project/openubl/xbuilder/content/models/common/Firmante.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package io.github.project.openubl.xbuilder.content.models.common;
1818

19+
import io.swagger.v3.oas.annotations.media.Schema;
1920
import lombok.AllArgsConstructor;
2021
import lombok.Builder;
2122
import lombok.Data;
@@ -35,10 +36,12 @@ public class Firmante {
3536
/**
3637
* Número de RUC de la persona
3738
*/
39+
@Schema(required = true, minLength = 11, maxLength = 11, pattern = "[0-9]+")
3840
private String ruc;
3941

4042
/**
4143
* Razón social de la persona
4244
*/
45+
@Schema(required = true)
4346
private String razonSocial;
4447
}

src/main/java/io/github/project/openubl/xbuilder/content/models/common/Proveedor.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package io.github.project.openubl.xbuilder.content.models.common;
1818

19+
import io.swagger.v3.oas.annotations.media.Schema;
1920
import lombok.AllArgsConstructor;
2021
import lombok.Builder;
2122
import lombok.Data;
@@ -35,6 +36,7 @@ public class Proveedor {
3536
/**
3637
* Número de RUC de la persona jurídica
3738
*/
39+
@Schema(required = true, minLength = 11, maxLength = 11, pattern = "[0-9]+")
3840
private String ruc;
3941

4042
/**
@@ -45,6 +47,7 @@ public class Proveedor {
4547
/**
4648
* Razón social de la persona jurídica
4749
*/
50+
@Schema(required = true)
4851
private String razonSocial;
4952

5053
/**

src/main/java/io/github/project/openubl/xbuilder/content/models/standard/general/Anticipo.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
*/
1717
package io.github.project.openubl.xbuilder.content.models.standard.general;
1818

19+
import io.github.project.openubl.xbuilder.content.catalogs.Catalog53_Anticipo;
20+
import io.swagger.v3.oas.annotations.media.Schema;
1921
import java.math.BigDecimal;
2022
import lombok.AllArgsConstructor;
2123
import lombok.Builder;
@@ -42,20 +44,25 @@ public class Anticipo {
4244
* <p>
4345
* Valores válidos: "04", "05", "06"
4446
*/
47+
@Schema(example = "04", description = "Catalog 53", required = true, allowableValues = { "04", "05", "06" })
4548
private String tipo;
4649

4750
/**
4851
* Serie y número de comprobante del anticipo, por ejemplo "F123-4"
4952
*/
53+
@Schema(example = "F123-4", required = true)
5054
private String comprobanteSerieNumero;
5155

5256
/**
57+
* Catalog 12
5358
* Código de tipo de documento del {@link #comprobanteSerieNumero}.
5459
*/
60+
@Schema(description = "Catalog 12. Tipo de documento del comprobante de anticipo")
5561
private String comprobanteTipo;
5662

5763
/**
5864
* Monto prepagado o anticipado
5965
*/
66+
@Schema(example = "10", required = true, minimum = "0", exclusiveMinimum = true)
6067
private BigDecimal monto;
6168
}

src/main/java/io/github/project/openubl/xbuilder/content/models/standard/general/CargoDescuento.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@
1919
import java.math.BigDecimal;
2020
import lombok.AllArgsConstructor;
2121
import lombok.Data;
22-
import lombok.EqualsAndHashCode;
2322
import lombok.NoArgsConstructor;
24-
import lombok.ToString;
2523
import lombok.experimental.SuperBuilder;
2624

2725
@Data

src/main/java/io/github/project/openubl/xbuilder/content/models/standard/general/CreditNote.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,18 @@
1616
*/
1717
package io.github.project.openubl.xbuilder.content.models.standard.general;
1818

19-
import lombok.AllArgsConstructor;
2019
import lombok.Data;
2120
import lombok.EqualsAndHashCode;
2221
import lombok.NoArgsConstructor;
2322
import lombok.experimental.SuperBuilder;
23+
import lombok.extern.jackson.Jacksonized;
2424

2525
/**
2626
* Clase base para CreditNote y DebitNote.
2727
*
2828
* @author <a href="mailto:carlosthe19916@gmail.com">Carlos Feria</a>
2929
*/
30+
@Jacksonized
3031
@Data
3132
@SuperBuilder
3233
@NoArgsConstructor

src/main/java/io/github/project/openubl/xbuilder/content/models/standard/general/CuotaDePago.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package io.github.project.openubl.xbuilder.content.models.standard.general;
1818

19+
import io.swagger.v3.oas.annotations.media.Schema;
1920
import java.math.BigDecimal;
2021
import java.time.LocalDate;
2122
import lombok.AllArgsConstructor;
@@ -37,10 +38,12 @@ public class CuotaDePago {
3738
/**
3839
* Importe de la cuota
3940
*/
41+
@Schema(required = true, minimum = "0", exclusiveMinimum = true)
4042
private BigDecimal importe;
4143

4244
/**
4345
* Fecha de pago de la cuota
4446
*/
47+
@Schema(description = "Ejemplo 2022-12-25", required = true, pattern = "^\\d{4}-\\d{2}-\\d{2}$")
4548
private LocalDate fechaPago;
4649
}

src/main/java/io/github/project/openubl/xbuilder/content/models/standard/general/DebitNote.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,13 @@
1616
*/
1717
package io.github.project.openubl.xbuilder.content.models.standard.general;
1818

19-
import lombok.AllArgsConstructor;
2019
import lombok.Data;
2120
import lombok.EqualsAndHashCode;
2221
import lombok.NoArgsConstructor;
2322
import lombok.experimental.SuperBuilder;
23+
import lombok.extern.jackson.Jacksonized;
2424

25+
@Jacksonized
2526
@Data
2627
@SuperBuilder
2728
@NoArgsConstructor

src/main/java/io/github/project/openubl/xbuilder/content/models/standard/general/Detraccion.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package io.github.project.openubl.xbuilder.content.models.standard.general;
1818

19+
import io.swagger.v3.oas.annotations.media.Schema;
1920
import java.math.BigDecimal;
2021
import lombok.AllArgsConstructor;
2122
import lombok.Builder;
@@ -36,13 +37,21 @@ public class Detraccion {
3637
/**
3738
* Catalog59
3839
**/
40+
@Schema(description = "Catalogo 59", required = true)
3941
private String medioDePago;
42+
43+
@Schema(required = true)
4044
private String cuentaBancaria;
4145

4246
/**
4347
* Catalog54
4448
**/
49+
@Schema(description = "Catalog 54", required = true)
4550
private String tipoBienDetraido;
51+
52+
@Schema(required = true, minimum = "0", maximum = "1", exclusiveMinimum = true)
4653
private BigDecimal porcentaje;
54+
55+
@Schema(required = true, minimum = "0", exclusiveMinimum = true)
4756
private BigDecimal monto;
4857
}

0 commit comments

Comments
 (0)