diff --git a/.schema.sql.swp b/.schema.sql.swp
new file mode 100644
index 0000000..580bd92
Binary files /dev/null and b/.schema.sql.swp differ
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..668ce55
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,3 @@
+FROM openjdk:8-jdk-alpine
+COPY ./target/crud-1.0.jar app.jar
+ENTRYPOINT [ "java", "-jar", "app.jar" ]
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..710c9f8
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,42 @@
+version: '3.9'
+networks:
+ weather-network:
+ driver: bridge
+services:
+ weather-databasePHP:
+ image: phpmyadmin/phpmyadmin
+ ports:
+ - "8085:80"
+ environment:
+ PMA_HOST: weather-database
+ MYSQL_ROOT_PASSWORD: 1936
+ MYSQL_USER: Admin1
+ MYSQL_PASSWORD: 1936
+ networks:
+ - weather-network
+ weatherAPI:
+ container_name: weatherAPI
+ image: app01
+ build: .
+ ports:
+ - 8080:8080
+ environment:
+ - DATABASE_URL=jdbc:mysql://weather-database:3306/pb?useSSL=false&serverTimezone=UTC&useLegacyDateTimeCode=false&allowPublicKeyRetrieval=true
+ - DATABASE_USERNAME=root
+ - DATABASE_PASSWORD=1936
+ # Aqui iria la creacion de un super usuario base
+ networks:
+ - weather-network
+
+
+ depends_on:
+ - weather-database
+ weather-database:
+ image: mysql:latest
+ ports:
+ - "3307:3306"
+ environment:
+ MYSQL_ROOT_PASSWORD: 1936
+ MYSQL_DATABASE: pb
+ networks:
+ - weather-network
diff --git a/pom.xml b/pom.xml
index abd3cb2..4351ae8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -107,8 +107,25 @@
bucket4j_jdk8-core
8.3.0
-
-
+
+
diff --git a/schema.sql b/schema.sql
new file mode 100644
index 0000000..2ae0aff
--- /dev/null
+++ b/schema.sql
@@ -0,0 +1,28 @@
+CREATE TABLE usuario (
+ id INT PRIMARY KEY AUTO_INCREMENT,
+ nombre VARCHAR(255) NOT NULL,
+ nombre_usuario VARCHAR(255) NOT NULL UNIQUE,
+ email VARCHAR(255) NOT NULL,
+ password VARCHAR(255) NOT NULL
+);
+CREATE TABLE rol (
+ id INT PRIMARY KEY AUTO_INCREMENT,
+ rol_nombre VARCHAR(255) NOT NULL
+);
+CREATE TABLE usuario_roles (
+ usuario_id INT,
+ rol_id INT,
+ PRIMARY KEY (usuario_id, rol_id),
+ FOREIGN KEY (usuario_id) REFERENCES usuario(id),
+ FOREIGN KEY (rol_id) REFERENCES rol(id)
+);
+CREATE TABLE consulta (
+ id_consulta INT PRIMARY KEY AUTO_INCREMENT,
+ ciudad VARCHAR(255) NOT NULL,
+ tipo_consulta VARCHAR(255) NOT NULL,
+ fecha_hora DATETIME NOT NULL,
+ respuesta TEXT NOT NULL,
+ usuario_id INT NOT NULL,
+ FOREIGN KEY (usuario_id) REFERENCES usuario(id)
+);
+insert into rol (rol_nombre) value ('CLIENT');
diff --git a/src/main/java/com/example/demo/security/Bucket/LimitInterceptor.java b/src/main/java/com/example/demo/security/Bucket/LimitInterceptor.java
index a8de041..afce4a1 100644
--- a/src/main/java/com/example/demo/security/Bucket/LimitInterceptor.java
+++ b/src/main/java/com/example/demo/security/Bucket/LimitInterceptor.java
@@ -44,7 +44,7 @@ public boolean preHandle(HttpServletRequest request, HttpServletResponse respons
private Bucket createNewBucket() {
return Bucket4j.builder()
- .addLimit(Bandwidth.simple(3, Duration.ofHours(1)))
+ .addLimit(Bandwidth.simple(10, Duration.ofHours(1)))
.build();
}
diff --git a/src/main/java/com/example/demo/security/entity/Consulta.java b/src/main/java/com/example/demo/security/entity/Consulta.java
index fb16dbe..780f3a1 100644
--- a/src/main/java/com/example/demo/security/entity/Consulta.java
+++ b/src/main/java/com/example/demo/security/entity/Consulta.java
@@ -50,4 +50,5 @@ public class Consulta implements Serializable {
private Usuario usuario;
+
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 9b8a860..a727c08 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,7 +1,8 @@
-#Conexion a MySQL
-spring.datasource.url=jdbc:mysql://localhost:3306/pb?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrival=true&useLegacyDateTimeCode=false
+ #Conexion a MySQL
+spring.datasource.url=jdbc:mysql://weather-database:3306/pb?useSSL=false&serverTimezone=UTC&useLegacyDateTimeCode=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=1936
+
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.show-sql = true
@@ -20,12 +21,17 @@ jwt.expiration = 20000000
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
-# Cloud Gateway Spring
+#SpringDoc Configuration
+
+#springdoc.api-docs.path=/api-docs
+
+#springdoc.api-docs.enabled=true
+
+#springdoc.swagger-ui.path=/swagger-ui.html
+
+#springdoc.swagger-ui.enabled=true
+
+#springdoc.paths-to-exclude=/refresh
+
+
-spring.cloud.gateway.routes[0].id=api_route
-spring.cloud.gateway.routes[0].uri=http://localhost:8080
-spring.cloud.gateway.routes[0].predicates[0]=Path=/api/**
-spring.cloud.gateway.routes[0].filters[0]=name=RequestRateLimiter
-spring.cloud.gateway.routes[0].filters[0].args.redis-rate-limiter.replenishRate=10
-spring.cloud.gateway.routes[0].filters[0].args.redis-rate-limiter.burstCapacity=20
-spring.cloud.gateway.routes[0].filters[0].args.key-resolver=#{@userKeyResolver}