Skip to content

Commit 83c9f96

Browse files
committed
Peticiones del servidor java
1 parent 947af6a commit 83c9f96

13 files changed

+91
-56
lines changed

.gitignore

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
.metals/
44
.bsp/
55
.scala-build/
6+
.env
67

78
# Ignorar archivos generados por SBT
89
target/
@@ -27,4 +28,5 @@ target/
2728

2829
# Ignorar archivos de construcción y configuración personal
2930
build.sbt.local
30-
*.sbt.local
31+
*.sbt.local
32+
src/main/resources/application.conf

Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ RUN sbt update
1212
RUN sbt compile
1313

1414
# Exponer el puerto por el que se comunicará la aplicación
15-
EXPOSE 8080
15+
EXPOSE 80
1616

1717
# Definir el comando para ejecutar la aplicación
1818
CMD ["sbt", "run"]

docker-compose.yml

+1-21
Original file line numberDiff line numberDiff line change
@@ -14,32 +14,12 @@ services:
1414
volumes:
1515
- db-master-data:/var/lib/mysql
1616
- ./database:/docker-entrypoint-initdb.d
17-
18-
# Configuración del esclavo MariaDB
19-
20-
# db-slave:
21-
# image: mariadb
22-
# command: --init-file /docker-entrypoint-initdb.d/init.sql
23-
# environment:
24-
# MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
25-
# MYSQL_DATABASE: ${MYSQL_DATABASE}
26-
# MYSQL_USER: ${MYSQL_USER}
27-
# MYSQL_PASSWORD: ${MYSQL_PASSWORD}
28-
# depends_on:
29-
# - db-master
30-
# ports:
31-
# - "3307:3306"
32-
# volumes:
33-
# - db-slave-data:/var/lib/mysql
34-
# - ./database:/docker-entrypoint-initdb.d
35-
36-
# Configuración de la aplicación Scala
3717
myproject:
3818
build:
3919
context: .
4020
dockerfile: Dockerfile
4121
ports:
42-
- "8080:8080"
22+
- "80:80"
4323
depends_on:
4424
- db-master
4525
#- db-slave

src/main/scala/example/controllers/DirectoryController.scala

+20-10
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,14 @@ class DirectoryController {
1616
try {
1717
val directorioOption = sql"SELECT * FROM directorios WHERE id = $id"
1818
.map { rs =>
19-
DirectoryModel(rs.int("id"), rs.string("nombre"), rs.string("ruta"), rs.int("usuario_id"))
19+
DirectoryModel(
20+
rs.int("id"),
21+
rs.string("nombre"),
22+
rs.string("ruta"),
23+
rs.int("usuario_id"),
24+
rs.double("tamano"),
25+
rs.int("nodo_id")
26+
)
2027
}
2128
.single()
2229
.map { directorio =>
@@ -36,20 +43,23 @@ class DirectoryController {
3643
}
3744
}
3845

39-
def guardarDirectorios(directorios: List[(String, String, Int)]): Future[List[Either[String, DirectoryModel]]] = {
46+
def guardarDirectorios(
47+
directorios: List[(String, String, Int, Double, Int)]
48+
): Future[List[Either[String, DirectoryModel]]] = {
4049
Future.sequence {
41-
directorios.map { case (nombre, ruta, usuario_id) =>
50+
directorios.map { case (nombre, ruta, usuario_id, tamano, nodo_id) =>
4251
Future {
4352
try {
44-
val result = sql"INSERT INTO directorios (nombre, ruta, usuario_id) VALUES ($nombre, $ruta, $usuario_id)"
45-
.update()
53+
val result =
54+
sql"INSERT INTO directorios (nombre, ruta, usuario_id, tamano, nodo_id) VALUES ($nombre, $ruta, $usuario_id, $tamano, $nodo_id)"
55+
.update()
4656

4757
if (result > 0) {
4858
// Recupera el ID generado por la base de datos
4959
val generatedId: Long = sql"SELECT LAST_INSERT_ID()".map(rs => rs.long(1)).single().getOrElse(0L)
5060

5161
// Crea una instancia de DirectoryModel con el ID real
52-
val directorio = DirectoryModel(generatedId.toInt, nombre, ruta, usuario_id)
62+
val directorio = DirectoryModel(generatedId.toInt, nombre, ruta, usuario_id, tamano, nodo_id)
5363
Right(directorio)
5464
} else {
5565
Left("No se pudo agregar el directorio")
@@ -65,24 +75,24 @@ class DirectoryController {
6575
}
6676

6777
def guardarSubDirectorios(
68-
subdirectorios: List[(String, String, Int)]
78+
subdirectorios: List[(String, String, Int, Double, Int)]
6979
): Future[List[Either[String, DirectoryModel]]] = {
7080
Future.sequence {
71-
subdirectorios.map { case (nombre, rutaPadre, usuario_id) =>
81+
subdirectorios.map { case (nombre, rutaPadre, usuario_id, tamano, nodo_id) =>
7282
Future {
7383
try {
7484
val nuevaRuta = s"$rutaPadre/$nombre"
7585

7686
val result =
77-
sql"INSERT INTO directorios (nombre, ruta, usuario_id) VALUES ($nombre, $nuevaRuta, $usuario_id)"
87+
sql"INSERT INTO directorios (nombre, ruta, usuario_id, tamano, nodo_id) VALUES ($nombre, $nuevaRuta, $usuario_id, $tamano, $nodo_id)"
7888
.update()
7989

8090
if (result > 0) {
8191
// Recupera el ID generado por la base de datos
8292
val generatedId: Long = sql"SELECT LAST_INSERT_ID()".map(rs => rs.long(1)).single().getOrElse(0L)
8393

8494
// Crea una instancia de DirectoryModel con el ID real
85-
val directorio = DirectoryModel(generatedId.toInt, nombre, nuevaRuta, usuario_id)
95+
val directorio = DirectoryModel(generatedId.toInt, nombre, nuevaRuta, usuario_id, tamano, nodo_id)
8696
Right(directorio)
8797
} else {
8898
Left("No se pudo agregar el sub directorio")

src/main/scala/example/controllers/FileController.scala

+12-6
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ class FileController {
2525
rs.string("ruta"),
2626
rs.double("tamano"),
2727
rs.int("usuario_id"),
28-
rs.boolean("habilitado")
28+
rs.boolean("habilitado"),
29+
rs.int("nodo_id"),
30+
rs.int("directorio_id")
2931
)
3032
}
3133
.single()
@@ -46,21 +48,23 @@ class FileController {
4648
}
4749
}
4850

49-
def guardarArchivos(archivos: List[(String, String, Double, Int)]): Future[List[Either[String, FileModel]]] = {
51+
def guardarArchivos(
52+
archivos: List[(String, String, Double, Int, Int, Int)]
53+
): Future[List[Either[String, FileModel]]] = {
5054
Future.sequence {
51-
archivos.map { case (nombre, ruta, tamano, usuario_id) =>
55+
archivos.map { case (nombre, ruta, tamano, usuario_id, nodo_id, directorio_id) =>
5256
Future {
5357
try {
5458
val result =
55-
sql"INSERT INTO archivos (nombre, ruta, tamano, usuario_id, habilitado) VALUES ($nombre, $ruta, $tamano, $usuario_id, true)"
59+
sql"INSERT INTO archivos (nombre, ruta, tamano, usuario_id, nodo_id, directorio_id) VALUES ($nombre, $ruta, $tamano, $usuario_id, $nodo_id,$directorio_id)"
5660
.update()
5761

5862
if (result > 0) {
5963
// Recupera el ID generado por la base de datos
6064
val generatedId: Long = sql"SELECT LAST_INSERT_ID()".map(rs => rs.long(1)).single().getOrElse(0L)
6165

6266
// Crea una instancia de DirectoryModel con el ID real
63-
val archivo = FileModel(generatedId.toInt, nombre, ruta, tamano, usuario_id, true)
67+
val archivo = FileModel(generatedId.toInt, nombre, ruta, tamano, usuario_id, true, nodo_id, directorio_id)
6468
Right(archivo)
6569
} else {
6670
Left("No se pudo agregar el archivo")
@@ -177,7 +181,9 @@ class FileController {
177181
rs.string("ruta"),
178182
rs.double("tamano"),
179183
rs.int("usuario_id"),
180-
rs.boolean("habilitado")
184+
rs.boolean("habilitado"),
185+
rs.int("nodo_id"),
186+
rs.int("directorio_id")
181187
)
182188
}
183189
.list()

src/main/scala/example/controllers/UserController.scala

+4-4
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class UserController {
1616
try {
1717
val usuarioOption = sql"SELECT * FROM usuarios WHERE id = $id"
1818
.map { rs =>
19-
UserModel(rs.int("id"), rs.string("nombre"), rs.string("apellido"), rs.boolean("habilitado"))
19+
UserModel(rs.int("auth_id"), rs.string("nombre"), rs.string("apellido"), rs.boolean("habilitado"))
2020
}
2121
.single()
2222
.map { usuario =>
@@ -36,18 +36,18 @@ class UserController {
3636
}
3737
}
3838

39-
def registrarUsuario(nombre: String, apellido: String): Future[Either[String, UserModel]] = {
39+
def registrarUsuario(auth_id: Int, nombre: String, apellido: String): Future[Either[String, UserModel]] = {
4040
Future {
4141
try {
42-
val result: Int = sql"INSERT INTO usuarios (nombre, apellido, habilitado) VALUES ($nombre, $apellido, true)"
42+
val result: Int = sql"INSERT INTO usuarios (nombre, apellido, auth_id) VALUES ($nombre, $apellido, $auth_id)"
4343
.update()
4444

4545
if (result > 0) {
4646
// Recupera el ID generado por la base de datos
4747
val generatedId: Long = sql"SELECT LAST_INSERT_ID()".map(rs => rs.long(1)).single().getOrElse(0L)
4848

4949
// Crea una instancia de UserModel con el ID real
50-
val usuario = UserModel(generatedId.toInt, nombre, apellido, true)
50+
val usuario = UserModel(auth_id, nombre, apellido, true)
5151
Right(usuario)
5252
} else {
5353
Left("No se pudo insertar el usuario")

src/main/scala/example/main.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ object Main extends App {
3131

3232
val routes: Route = userRoute.route ~ fileRoute.route ~ directoryRoute.route
3333

34-
val bindingFuture = Http().bindAndHandle(routes, "0.0.0.0", 8080)
35-
println(s"Server online at http://207.248.81.126:8080/")
34+
val bindingFuture = Http().bindAndHandle(routes, "0.0.0.0", 80)
35+
println(s"Server online at http://207.248.81.126:80/")
3636

3737
while (true) {
3838
Thread.sleep(10000)
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
package models
22

3-
case class DirectoryModel(id: Int, nombre: String, ruta: String, usuarioId: Int)
4-
5-
case class DirectoryCreateModel(nombre: String, ruta: String, usuario_id: Int)
3+
case class DirectoryModel(
4+
id: Int,
5+
nombre: String,
6+
ruta: String,
7+
usuarioId: Int,
8+
tamano: Double,
9+
nodoId: Int
10+
)
11+
case class DirectoryCreateModel(nombre: String, ruta: String, usuario_id: Int, tamano: Double, nodo_id: Int)
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,25 @@
11
package models
22

3-
case class FileModel(id: Int, nombre: String, ruta: String, tamano: Double, usuario_id: Int, habilitado: Boolean)
3+
case class FileModel(
4+
id: Int,
5+
nombre: String,
6+
ruta: String,
7+
tamano: Double,
8+
usuario_id: Int,
9+
habilitado: Boolean,
10+
nodo_id: Int,
11+
directorio_id: Int
12+
)
413

514
case class FileReportModel(usuario_id: Int, tamano: Double)
615

716
case class FileMoveModel(id: Int, nuevaRuta: String)
817

9-
case class FileCreateModel(nombre: String, ruta: String, tamano: Double, usuario_id: Int)
18+
case class FileCreateModel(
19+
nombre: String,
20+
ruta: String,
21+
tamano: Double,
22+
usuario_id: Int,
23+
nodo_id: Int,
24+
directorio_id: Int
25+
)
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package models
22

3-
case class UserModel(id: Int, nombre: String, apellido: String, habilitado: Boolean)
3+
case class UserModel(auth_id: Int, nombre: String, apellido: String, habilitado: Boolean)
44

5-
case class UserCreateModel(nombre: String, apellido: String)
5+
case class UserCreateModel(auth_id: Int, nombre: String, apellido: String)

src/main/scala/example/routes/DirectoryRoute.scala

+12-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ class DirectoryRoute(directoryController: DirectoryController) {
2626
post {
2727
entity(as[List[DirectoryCreateModel]]) { directories =>
2828
val results: Future[List[Either[String, DirectoryModel]]] = directoryController.guardarDirectorios(
29-
directories.map(directory => (directory.nombre, directory.ruta, directory.usuario_id))
29+
directories.map(directory =>
30+
(directory.nombre, directory.ruta, directory.usuario_id, directory.tamano, directory.nodo_id)
31+
)
3032
)
3133
onSuccess(results) { list =>
3234
val errors = list.collect { case Left(errorMessage) => errorMessage }
@@ -44,7 +46,15 @@ class DirectoryRoute(directoryController: DirectoryController) {
4446
post {
4547
entity(as[List[DirectoryCreateModel]]) { subDirectories =>
4648
val results: Future[List[Either[String, DirectoryModel]]] = directoryController.guardarSubDirectorios(
47-
subDirectories.map(subDirectory => (subDirectory.nombre, subDirectory.ruta, subDirectory.usuario_id))
49+
subDirectories.map(subDirectory =>
50+
(
51+
subDirectory.nombre,
52+
subDirectory.ruta,
53+
subDirectory.usuario_id,
54+
subDirectory.tamano,
55+
subDirectory.nodo_id
56+
)
57+
)
4858
)
4959
onSuccess(results) { list =>
5060
val errors = list.collect { case Left(errorMessage) => errorMessage }

src/main/scala/example/routes/FileRoute.scala

+5-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,11 @@ class FileRoute(fileController: FileController) {
2525
post {
2626
entity(as[List[FileCreateModel]]) { files =>
2727
val result: Future[List[Either[String, FileModel]]] =
28-
fileController.guardarArchivos(files.map(file => (file.nombre, file.ruta, file.tamano, file.usuario_id)))
28+
fileController.guardarArchivos(
29+
files.map(file =>
30+
(file.nombre, file.ruta, file.tamano, file.usuario_id, file.nodo_id, file.directorio_id)
31+
)
32+
)
2933
onSuccess(result) { list =>
3034
val errors = list.collect { case Left(errorMessage) => errorMessage }
3135
if (errors.isEmpty) {

src/main/scala/example/routes/UserRoute.scala

+2-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ class UserRoute(userController: UserController) {
2525
path("register") {
2626
post {
2727
entity(as[UserCreateModel]) { user =>
28-
val result: Future[Either[String, UserModel]] = userController.registrarUsuario(user.nombre, user.apellido)
28+
val result: Future[Either[String, UserModel]] =
29+
userController.registrarUsuario(user.auth_id, user.nombre, user.apellido)
2930
onSuccess(result) {
3031
case Right(newUser) => complete(StatusCodes.Created, newUser)
3132
case Left(errorMessage) => complete(HttpResponse(StatusCodes.InternalServerError, entity = errorMessage))

0 commit comments

Comments
 (0)