diff --git a/CHANGELOG.md b/CHANGELOG.md index 6477682..e686832 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +## [0.8.0-alpha.1] (2021-12-05) + +### Fixed + +- #Se puede modificar el nombre de la tienda. +- #Se puede eliminar imagen +- #Se puede eliminar producto +- #Se puede despachar pedido +- #Se ha mejorado el aspecto visual + ## [0.7.0-alpha.1] (2021-12-02) ### Fixed diff --git a/clientes-app/src/app/altapersona/altapersona.component.html b/clientes-app/src/app/altapersona/altapersona.component.html index a6a8f3f..a2ff413 100644 --- a/clientes-app/src/app/altapersona/altapersona.component.html +++ b/clientes-app/src/app/altapersona/altapersona.component.html @@ -1,71 +1,76 @@ -
+

-
-
-
-
- - -
-
- - -
-
- - -
+
+
+
+ +
+
+ + +
+
+ + +
+ +
+ + +
-
- - -
-
- - -
+
+ + +
+
+ + +
+
+ +
- - +
diff --git a/clientes-app/src/app/altapersona/altapersona.component.ts b/clientes-app/src/app/altapersona/altapersona.component.ts index bb7efbb..add1ab6 100644 --- a/clientes-app/src/app/altapersona/altapersona.component.ts +++ b/clientes-app/src/app/altapersona/altapersona.component.ts @@ -17,8 +17,6 @@ export class AltapersonaComponent implements OnInit { constructor( private altaPersonaService: AltaPersonaService, private router: Router, - private personaService: PersonaServices, - private empleadoService: EmpleadoService ) {} ngOnInit(): void { diff --git a/clientes-app/src/app/altaproducto/altaproducto.component.html b/clientes-app/src/app/altaproducto/altaproducto.component.html index a003fca..c4870ee 100644 --- a/clientes-app/src/app/altaproducto/altaproducto.component.html +++ b/clientes-app/src/app/altaproducto/altaproducto.component.html @@ -1,98 +1,121 @@
-
-

-

-

-

-
-
+
-
-
- -
-
- -
-
-
- - + +
+ +
+ +
+
+
+ + +
- -
- -
+ +
+ +
+
-
-
- -
- -
+
+ +
+ +
+
-
- -
- -
- -
+
+ +
+ +
+
-
-
- -
- -
+
+ +
+ +
+
-
-
-
- +
+
+ +
-
-
-
- +
+
+ +
-
+ - - - -
-
- -
- - - - - - - - - - - - - -
EspicificaciónDescripción
{{ especificacion.claveEspecificacion }}{{ especificacion.descripcionEspecificacion }}
-
+
+
+
+ + + + + + + + + + + + + +
EspicificaciónDescripción
{{ especificacion.claveEspecificacion }}{{ especificacion.descripcionEspecificacion }}
- +
- - diff --git a/clientes-app/src/app/app.module.ts b/clientes-app/src/app/app.module.ts index 54f1eb9..df68ab6 100644 --- a/clientes-app/src/app/app.module.ts +++ b/clientes-app/src/app/app.module.ts @@ -29,6 +29,8 @@ import { ProductoCestaComponent } from './producto-cesta/producto-cesta.componen import { DireccionPedidoComponent } from './direccion-pedido/direccion-pedido.component'; import { PasarelaComponent } from './pasarela/pasarela.component'; import { ListaPedidosComponent } from './lista-pedidos/lista-pedidos.component'; +import { DespachoComponent } from './despacho/despacho.component'; +import { ConfiguracionComponent } from './configuracion/configuracion.component'; const routes: Routes = [ {path:'', redirectTo:'/productosgrid', pathMatch: 'full'}, @@ -47,7 +49,9 @@ const routes: Routes = [ {path:'cesta', component: CestaComponent}, {path:'direccion/:id', component: DireccionPedidoComponent}, {path:'pasarela/:id', component: PasarelaComponent}, - {path:'listapedidos', component: ListaPedidosComponent} + {path:'listapedidos', component: ListaPedidosComponent}, + {path:'despacho', component: DespachoComponent}, + {path:'configuracion', component: ConfiguracionComponent} ]; @NgModule({ @@ -74,7 +78,9 @@ const routes: Routes = [ ProductoCestaComponent, DireccionPedidoComponent, PasarelaComponent, - ListaPedidosComponent + ListaPedidosComponent, + DespachoComponent, + ConfiguracionComponent ], imports: [ diff --git a/clientes-app/src/app/configuracion/configuracion.component.css b/clientes-app/src/app/configuracion/configuracion.component.css new file mode 100644 index 0000000..e69de29 diff --git a/clientes-app/src/app/configuracion/configuracion.component.html b/clientes-app/src/app/configuracion/configuracion.component.html new file mode 100644 index 0000000..6b09b52 --- /dev/null +++ b/clientes-app/src/app/configuracion/configuracion.component.html @@ -0,0 +1,23 @@ + +
+
+
+
+ +
+ +
+
+ +
+ +
diff --git a/clientes-app/src/app/configuracion/configuracion.component.spec.ts b/clientes-app/src/app/configuracion/configuracion.component.spec.ts new file mode 100644 index 0000000..ef081a6 --- /dev/null +++ b/clientes-app/src/app/configuracion/configuracion.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ConfiguracionComponent } from './configuracion.component'; + +describe('ConfiguracionComponent', () => { + let component: ConfiguracionComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ConfiguracionComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ConfiguracionComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/clientes-app/src/app/configuracion/configuracion.component.ts b/clientes-app/src/app/configuracion/configuracion.component.ts new file mode 100644 index 0000000..90ead98 --- /dev/null +++ b/clientes-app/src/app/configuracion/configuracion.component.ts @@ -0,0 +1,35 @@ +import { Router } from '@angular/router'; +import { ProductoService } from './../producto/producto.service'; +import { Component, OnInit } from '@angular/core'; +import { Tienda } from './tienda.model'; + +@Component({ + selector: 'app-configuracion', + templateUrl: './configuracion.component.html', + styleUrls: ['./configuracion.component.css'] +}) +export class ConfiguracionComponent implements OnInit { + + constructor(private productoService: ProductoService, + private router:Router) { } + + nombre: string + tienda: Tienda; + + ngOnInit(): void { + this.tienda= new Tienda(); + } + + setNombre(){ + console.log(this.tienda.nombreTienda) + this.productoService.setNombreTienda(this.tienda).subscribe( + (res)=>{this.router.navigate(['productosgrid'])} + ) + } + setNombreTienda(event: Event){ + this.tienda= new Tienda(); + this.tienda.id=1 + this.tienda.nombreTienda= (event.target).value; + } + +} diff --git a/clientes-app/src/app/configuracion/tienda.model.ts b/clientes-app/src/app/configuracion/tienda.model.ts new file mode 100644 index 0000000..d7ffc80 --- /dev/null +++ b/clientes-app/src/app/configuracion/tienda.model.ts @@ -0,0 +1,4 @@ +export class Tienda { + id!:number; + nombreTienda!:string; +} diff --git a/clientes-app/src/app/despacho/despacho.component.css b/clientes-app/src/app/despacho/despacho.component.css new file mode 100644 index 0000000..e69de29 diff --git a/clientes-app/src/app/despacho/despacho.component.html b/clientes-app/src/app/despacho/despacho.component.html new file mode 100644 index 0000000..d73cb03 --- /dev/null +++ b/clientes-app/src/app/despacho/despacho.component.html @@ -0,0 +1,60 @@ + +
+

+

+

+

+

+

+
+
+

PEDIDO: {{ pedido.id }}

+
+
Dirección:
+

+ {{ pedido?.direccionPedido?.via }}, + {{ pedido?.direccionPedido?.numero }}, + {{ pedido?.direccionPedido?.cp }}, + {{ pedido?.direccionPedido?.localidad }}, + {{ pedido?.direccionPedido?.pronvicia }} +

+
+
+
Articulos:
+
+ + + + + + + + + + + + + +
NombreCantidad
{{ detalle.nombre }}{{ detalle.cantidad }}
+
+
+
+
Estado:
+

{{ pedido?.estado }}

+
+
+
Importe:
+

{{ pedido?.total }}

+
+
+ +
+
+
+
diff --git a/clientes-app/src/app/despacho/despacho.component.spec.ts b/clientes-app/src/app/despacho/despacho.component.spec.ts new file mode 100644 index 0000000..31292d4 --- /dev/null +++ b/clientes-app/src/app/despacho/despacho.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { DespachoComponent } from './despacho.component'; + +describe('DespachoComponent', () => { + let component: DespachoComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ DespachoComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(DespachoComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/clientes-app/src/app/despacho/despacho.component.ts b/clientes-app/src/app/despacho/despacho.component.ts new file mode 100644 index 0000000..7f65989 --- /dev/null +++ b/clientes-app/src/app/despacho/despacho.component.ts @@ -0,0 +1,42 @@ +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { filter } from 'rxjs/operators'; +import { Pedido } from '../pedido/pedido.model'; +import { PedidoService } from '../pedido/pedido.service'; +import { PersonaServices } from '../persona/persona.service'; + +@Component({ + selector: 'app-despacho', + templateUrl: './despacho.component.html', + styleUrls: ['./despacho.component.css'], +}) +export class DespachoComponent implements OnInit { + pedidos!: Pedido[]; + + constructor( + private activatedRoute: ActivatedRoute, + private pedidoService: PedidoService, + private personaService: PersonaServices + ) {} + + ngOnInit(): void { + this.pedidos = new Array(); + + this.pedidoService + .getPedidos() + .subscribe((respuesta) => { + this.pedidos = respuesta; + console.log(this.pedidos.length); + }); + } + + setEstadoPedidoPagado(id:number) { + let pedido= new Pedido(); + pedido = this.pedidos.find(x=>x.id==id)|| new Pedido(); + pedido.estado='Despachado'; + this.pedidoService.setPedido(pedido).subscribe( + () => {} + ); + + } +} diff --git a/clientes-app/src/app/detalleproducto/detalleproducto.component.html b/clientes-app/src/app/detalleproducto/detalleproducto.component.html index 8053bae..1bb1bdb 100644 --- a/clientes-app/src/app/detalleproducto/detalleproducto.component.html +++ b/clientes-app/src/app/detalleproducto/detalleproducto.component.html @@ -1,64 +1,83 @@
-
-

-

-

-

-
- -
-
-
- -
-
-
-
- -
-
-
+
+
-
-

{{ producto?.nombre }}

-

{{ producto?.productoCaracteristicas.descripcion }}

-
Especificaciones
-
- - - - - - - - - - - - - -
EspicificaciónDescripción
{{ especificacion.claveEspecificacion }}{{ especificacion.descripcionEspecificacion }}
+
+
+ +
+
+
+
+ +
+
+
+
+
+

{{ producto?.nombre }}

+

{{ producto?.productoCaracteristicas.descripcion }}

+
Especificaciones
+
+ + + + + + + + + + + + + +
EspicificaciónDescripción
{{ especificacion.claveEspecificacion }}{{ especificacion.descripcionEspecificacion }}
+
+ +
+
+ +
+
+
- diff --git a/clientes-app/src/app/detalleproducto/detalleproducto.component.ts b/clientes-app/src/app/detalleproducto/detalleproducto.component.ts index a09eac1..baf1ad9 100644 --- a/clientes-app/src/app/detalleproducto/detalleproducto.component.ts +++ b/clientes-app/src/app/detalleproducto/detalleproducto.component.ts @@ -1,3 +1,4 @@ +import { PersonaServices } from './../persona/persona.service'; import { ProductoCaracteristicas } from './../producto/productoCaracteristicas.model'; import { ActivatedRoute, Router } from '@angular/router'; import { ProductoService } from './../producto/producto.service'; @@ -16,6 +17,8 @@ export class DetalleproductoComponent implements OnInit { constructor( private productoService: ProductoService, private activatedRoute: ActivatedRoute, + private personaService: PersonaServices, + private router: Router ) {} ngOnInit(): void { @@ -40,4 +43,14 @@ export class DetalleproductoComponent implements OnInit { getProducto(): Producto { return this.producto; } + + tienePermisos(role: string): boolean { + return this.personaService.hasRole(role); + } + + EliminarProducto(){ + return this.productoService.eliminarProducto(this.producto.id).subscribe( + (x) =>{this.router.navigate(['productosgrid'])} + ); + } } diff --git a/clientes-app/src/app/empleados/empleados.component.ts b/clientes-app/src/app/empleados/empleados.component.ts index 31f9bdb..ebe5389 100644 --- a/clientes-app/src/app/empleados/empleados.component.ts +++ b/clientes-app/src/app/empleados/empleados.component.ts @@ -1,3 +1,4 @@ +import { PersonaServices } from './../persona/persona.service'; import swal from 'sweetalert2'; import { Router } from '@angular/router'; import { Usuario } from './../login/usuario.model'; @@ -14,7 +15,8 @@ export class EmpleadosComponent implements OnInit { usuario: Usuario; - constructor(private empleadoService: EmpleadoService, private router:Router) { + constructor(private empleadoService: EmpleadoService, private router:Router, + private personaService: PersonaServices) { } ngOnInit(): void { @@ -27,13 +29,17 @@ export class EmpleadosComponent implements OnInit { guaradarEmpleado(): void{ console.log('entra' + this.usuario) this.empleadoService.guardarEmpleado(this.usuario).subscribe( - response => {this.usuario = response} - ); - swal.fire("Guardado!!", "Se han guardado los cambios", "success") + response => {this.usuario = response + } + ); + this.personaService.logout(); + swal.fire("Guardado!!", "Se han guardado los cambios y hemos cerrado la sesión por seguridad", "success") + this.router.navigate(['/login']); } + getUsuario(): Usuario{ return this.usuario; } diff --git a/clientes-app/src/app/header/header.component.html b/clientes-app/src/app/header/header.component.html index 4c7959b..24b0f46 100644 --- a/clientes-app/src/app/header/header.component.html +++ b/clientes-app/src/app/header/header.component.html @@ -1,6 +1,6 @@
diff --git a/clientes-app/src/app/lista-pedidos/lista-pedidos.component.ts b/clientes-app/src/app/lista-pedidos/lista-pedidos.component.ts index 4327648..a9cf734 100644 --- a/clientes-app/src/app/lista-pedidos/lista-pedidos.component.ts +++ b/clientes-app/src/app/lista-pedidos/lista-pedidos.component.ts @@ -3,6 +3,7 @@ import { PedidoService } from './../pedido/pedido.service'; import { ActivatedRoute } from '@angular/router'; import { Component, OnInit } from '@angular/core'; import { Pedido } from '../pedido/pedido.model'; +import { ThisReceiver } from '@angular/compiler'; @Component({ selector: 'app-lista-pedidos', @@ -20,6 +21,7 @@ export class ListaPedidosComponent implements OnInit { ngOnInit(): void { this.pedidos= new Array(); + this.activatedRoute.paramMap.subscribe((params) => { this.pedidoService.getPedidosByIdusuario(this.personaService.usuario.id).subscribe((respuesta) => { this.pedidos = respuesta; @@ -29,4 +31,6 @@ export class ListaPedidosComponent implements OnInit { }); } + + } diff --git a/clientes-app/src/app/login/login.component.html b/clientes-app/src/app/login/login.component.html index 58edfbe..28acdc0 100644 --- a/clientes-app/src/app/login/login.component.html +++ b/clientes-app/src/app/login/login.component.html @@ -1,29 +1,60 @@ -
-
{{titulo}}
+
+
+
{{ titulo }}
-
-
-
- -
+
+
+ +
+ +
-
- +
+ +
+
+ +
+
- -
- +
+
+
+ ¿Aún no compras en nuestra tienda? Registrate sin compromiso!! +
+
+ +
+
- -
- -
- -
- +
- diff --git a/clientes-app/src/app/pedido/pedido.service.ts b/clientes-app/src/app/pedido/pedido.service.ts index ba07a1c..3ef09a1 100644 --- a/clientes-app/src/app/pedido/pedido.service.ts +++ b/clientes-app/src/app/pedido/pedido.service.ts @@ -20,6 +20,8 @@ export class PedidoService { 'http://localhost:8090/api/productos/pedidos/recupera-pedido'; private urlRecuperaPedidoIdUsuario: string = 'http://localhost:8090/api/productos/pedidos/recupera-pedidos-usuario'; + private urlRecuperaPedidos: string = + 'http://localhost:8090/api/productos/pedidos/lista'; private urlEliminaPedido: string = 'http://localhost:8090/api/productos/pedidos/borra-pedido'; @@ -70,6 +72,18 @@ export class PedidoService { ); } + getPedidos(): Observable { + return this.http.get(`${this.urlRecuperaPedidos}`, { + headers: this.productoService.agregarAuthorizationHeader() + }).pipe( + catchError((e) => { + console.error(e.error.mensaje); + swal.fire('Error al obtener los pedidos', e.error.mensaje, 'error'); + return throwError(e); + }) + ); + } + eliminarPedido(id: number){ return this.http.delete(`${this.urlEliminaPedido}/${id}`, { headers: this.productoService.agregarAuthorizationHeader() diff --git a/clientes-app/src/app/principal/principal.component.html b/clientes-app/src/app/principal/principal.component.html index f77c602..6c85f20 100644 --- a/clientes-app/src/app/principal/principal.component.html +++ b/clientes-app/src/app/principal/principal.component.html @@ -34,5 +34,4 @@

Decoración para el Arbol

-
diff --git a/clientes-app/src/app/producto-item/producto-item.component.html b/clientes-app/src/app/producto-item/producto-item.component.html index 03778d4..9ec7d22 100644 --- a/clientes-app/src/app/producto-item/producto-item.component.html +++ b/clientes-app/src/app/producto-item/producto-item.component.html @@ -18,6 +18,7 @@ class="custom-file-input" id="inputGroupFile04" aria-describedby="inputGroupFileAddon04" + value="inputGroupFile04" /> + +
+ +
@@ -83,4 +94,3 @@
- diff --git a/clientes-app/src/app/producto-item/producto-item.component.ts b/clientes-app/src/app/producto-item/producto-item.component.ts index bfc5ee2..b18917a 100644 --- a/clientes-app/src/app/producto-item/producto-item.component.ts +++ b/clientes-app/src/app/producto-item/producto-item.component.ts @@ -55,5 +55,12 @@ export class ProductoItemComponent implements OnInit { } + eliminaImagen(imagen: string){ + this.productoService.eliminarImagen(imagen).subscribe(producto => { + this.producto = producto; + }); + } + + } diff --git a/clientes-app/src/app/producto/producto.component.css b/clientes-app/src/app/producto/producto.component.css index c5827eb..6f10880 100644 --- a/clientes-app/src/app/producto/producto.component.css +++ b/clientes-app/src/app/producto/producto.component.css @@ -2,6 +2,13 @@ border: 1px solid #eee } +.foto { + object-fit: cover; + width: 35vw; + height: 200px; +} + + .p-details { padding: 10px; border-radius: 0px; diff --git a/clientes-app/src/app/producto/producto.component.html b/clientes-app/src/app/producto/producto.component.html index 6869e5a..87124bf 100644 --- a/clientes-app/src/app/producto/producto.component.html +++ b/clientes-app/src/app/producto/producto.component.html @@ -1,36 +1,36 @@
-
-
- -
- -
-
-
{{ producto.nombre }}
- +
+
+
-
-
-
-
-
-
- {{ producto.precio }} + +
+
+
{{ producto.nombre }}
+
-
-
PUNTUACIÓN
- {{ producto.valoracion }} +
+
-
-
CATEGORIA
- {{ producto.categoria }} +
+
+ {{ producto.precio }}€ + {{ producto.categoria }} +
+
+
+
-
-
- -
diff --git a/clientes-app/src/app/producto/producto.component.ts b/clientes-app/src/app/producto/producto.component.ts index 5a6d0f8..cb9f034 100644 --- a/clientes-app/src/app/producto/producto.component.ts +++ b/clientes-app/src/app/producto/producto.component.ts @@ -75,13 +75,16 @@ export class ProductoComponent implements OnInit { productoCantidad.idProducto = this.producto.id; productoCantidad.cantidad = 1; - this.cesta.productoCantidad.push(productoCantidad); console.log(this.cesta.productoCantidad.length); - this.cestaService.incluirEnCesta(this.cesta).subscribe( - respuesta => {this.cesta=respuesta - this.router.navigate(['cesta'])} - ); + this.cestaService.incluirEnCesta(this.cesta).subscribe((respuesta) => { + this.cesta = respuesta; + this.router.navigate(['cesta']); + }); }); } + + tienePermisos(role: string): boolean { + return this.personaServices.hasRole(role); + } } diff --git a/clientes-app/src/app/producto/producto.service.ts b/clientes-app/src/app/producto/producto.service.ts index bf7585a..eb6d862 100644 --- a/clientes-app/src/app/producto/producto.service.ts +++ b/clientes-app/src/app/producto/producto.service.ts @@ -6,6 +6,7 @@ import { Producto } from './producto.model'; import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http'; import { catchError, map, switchAll } from 'rxjs/operators'; import swal from 'sweetalert2'; +import { Tienda } from '../configuracion/tienda.model'; @Injectable({ providedIn: 'root' }) export class ServiceNameService { @@ -21,9 +22,21 @@ export class ProductoService { private urlProductoNuevo: string = 'http://localhost:8090/api/productos/producto/nuevo'; private urlEndPoint: string = 'http://localhost:8090/api/productos/producto'; + private urlEliminarProducto: string = + 'http://localhost:8090/api/productos/producto/borrar'; + private urlEliminarImagen: string = + 'http://localhost:8090/api/productos/producto/borrar-imagen'; + private urlCambiarNombre: string = + 'http://localhost:8090/api/productos/tienda/cambia-tienda'; + private urlNombre: string = + 'http://localhost:8090/api/productos/tienda/nombre'; private httpHeaders = new HttpHeaders({ 'Content-Type': 'application/json' }); + busqueda: string; + + + constructor( private http: HttpClient, private router: Router, @@ -107,6 +120,7 @@ export class ProductoService { ); } + private isNoAutorizado(e: { status: number }): boolean { if (e.status == 401) { if (this.personaServices.isAuthenticated()) { @@ -117,10 +131,74 @@ export class ProductoService { } if (e.status == 403) { - swal.fire('Error', 'Acceso Denegaod', 'warning') + swal.fire('Error', 'Acceso Denegaod', 'warning'); return true; } return false; } + + setFiltro(busqueda: string) { + this.busqueda = busqueda; + } + + getFiltro(busqueda: string) { + return this.busqueda; + } + + eliminarProducto(id: number): Observable { + return this.http + .delete(`${this.urlEliminarProducto}/${id}`, { + headers: this.agregarAuthorizationHeader(), + }) + .pipe( + catchError((e) => { + console.error(e.error.mensaje); + swal.fire('No se pudo borra el producto', e.error.mensaje, 'error'); + return throwError(e); + }) + ); + } + eliminarImagen(imagen: string): Observable { + console.log(this.urlEliminarImagen+'/'+imagen) + return this.http + .delete(`${this.urlEliminarImagen}/${imagen}`, { + headers: this.agregarAuthorizationHeader(), + }) + .pipe( + catchError((e) => { + console.error(e.error.mensaje); + swal.fire('No se pudo borra el producto', e.error.mensaje, 'error'); + return throwError(e); + }) + ); + } + + setNombreTienda(tienda: Tienda): Observable{ + return this.http + .post(this.urlCambiarNombre, tienda, { + headers: this.agregarAuthorizationHeader(), + }) + .pipe( + catchError((e) => { + swal.fire('Error al guardar el nombre de la tienda', e.error.mensaje, 'error'); + this.isNoAutorizado(e); + console.error(e.error.mensaje); + return throwError(e); + }) + ); + + + + } + getNombreTienda(): Observable{ + return this.http + .get(`${this.urlNombre}`, { + headers: this.httpHeaders, + }) + .pipe( + + ); + + } } diff --git a/clientes-app/src/app/productosgrid/productosgrid.component.html b/clientes-app/src/app/productosgrid/productosgrid.component.html index 088a4fc..4ddf330 100644 --- a/clientes-app/src/app/productosgrid/productosgrid.component.html +++ b/clientes-app/src/app/productosgrid/productosgrid.component.html @@ -3,8 +3,6 @@

-

-

@@ -15,11 +13,4 @@ >
-

-

-

-

-

-

-

- + diff --git a/clientes-app/src/app/productosgrid/productosgrid.component.ts b/clientes-app/src/app/productosgrid/productosgrid.component.ts index 4f29f5b..b683cb9 100644 --- a/clientes-app/src/app/productosgrid/productosgrid.component.ts +++ b/clientes-app/src/app/productosgrid/productosgrid.component.ts @@ -19,14 +19,13 @@ export class ProductosgridComponent implements OnInit { this.productoService.getProductos().subscribe( productos => this.productos= productos ) - } agregarProducto(producto: Producto){ this.productos.push(producto); } - buscarProductosPorNombre(event: Event): void { - } + + } diff --git a/config/application.properties b/config/application.properties index 4c29dfe..70a26d5 100644 --- a/config/application.properties +++ b/config/application.properties @@ -1,3 +1,14 @@ config.security.oauth.client.id=frontendapp config.security.oauth.client.secret=12345 -config.security.oauth.jwt.key=12345 \ No newline at end of file +config.security.oauth.jwt.key=12345 + +spring.datasource.url=jdbc:postgresql://localhost:5432/db_ecommerce +spring.datasource.username=postgres +spring.datasource.password=ruben +spring.datasource.driver-class-name=org.postgresql.Driver +spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL95Dialect +spring.jpa.hibernate.ddl-auto=create + +logging.level.org.hibernate.SQL=debug + +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true \ No newline at end of file diff --git a/config/servicio-compras.properties b/config/servicio-compras.properties deleted file mode 100644 index 4d160fb..0000000 --- a/config/servicio-compras.properties +++ /dev/null @@ -1,10 +0,0 @@ -spring.datasource.url=jdbc:postgresql://localhost:5432/db_ecommerce -spring.datasource.username=postgres -spring.datasource.password=ruben -spring.datasource.driver-class-name=org.postgresql.Driver -spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL95Dialect -spring.jpa.hibernate.ddl-auto=create - -logging.level.org.hibernate.SQL=debug - -spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true \ No newline at end of file diff --git a/config/servicio-personas.properties b/config/servicio-personas.properties deleted file mode 100644 index 4d160fb..0000000 --- a/config/servicio-personas.properties +++ /dev/null @@ -1,10 +0,0 @@ -spring.datasource.url=jdbc:postgresql://localhost:5432/db_ecommerce -spring.datasource.username=postgres -spring.datasource.password=ruben -spring.datasource.driver-class-name=org.postgresql.Driver -spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL95Dialect -spring.jpa.hibernate.ddl-auto=create - -logging.level.org.hibernate.SQL=debug - -spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true \ No newline at end of file diff --git a/config/servicio-productos.properties b/config/servicio-productos.properties deleted file mode 100644 index d011abd..0000000 --- a/config/servicio-productos.properties +++ /dev/null @@ -1,10 +0,0 @@ -spring.datasource.url=jdbc:postgresql://localhost:5432/db_springboot_cloud -spring.datasource.username=postgres -spring.datasource.password=sasa -spring.datasource.driver-class-name=org.postgresql.Driver -spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL95Dialect -spring.jpa.hibernate.ddl-auto=create - -logging.level.org.hibernate.SQL=debug - -spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true \ No newline at end of file diff --git a/ectemplate-service-zuul-server/src/main/java/net/ectemplate/app/zuul/oauth/ResourceServerConfig.java b/ectemplate-service-zuul-server/src/main/java/net/ectemplate/app/zuul/oauth/ResourceServerConfig.java index 1da9a78..e7650b0 100644 --- a/ectemplate-service-zuul-server/src/main/java/net/ectemplate/app/zuul/oauth/ResourceServerConfig.java +++ b/ectemplate-service-zuul-server/src/main/java/net/ectemplate/app/zuul/oauth/ResourceServerConfig.java @@ -39,6 +39,7 @@ public void configure(HttpSecurity http) throws Exception { .antMatchers("/api/security/oauth/**").permitAll() .antMatchers(HttpMethod.GET,"/api/productos/producto/**").permitAll() .antMatchers(HttpMethod.POST,"/api/personas/crea-cliente").permitAll() + .antMatchers(HttpMethod.GET,"/api/productos/tienda/nombre").permitAll() .antMatchers("/api/productos/cesta/**").permitAll() .antMatchers("/api/productos/producto/nuevo").hasRole("ADMIN") .antMatchers("/api/productos/producto/imagen").hasRole("ADMIN") diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/CestaController.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/CestaController.java index 0111c11..435e012 100644 --- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/CestaController.java +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/CestaController.java @@ -12,12 +12,15 @@ import net.ostemplate.app.productos.models.entity.Cesta; import net.ostemplate.app.productos.models.service.CestaServiceImpl; +import net.ostemplate.app.productos.models.service.ImagenProductoI; @RestController public class CestaController { @Autowired private CestaServiceImpl cestaServiceImpl; + + @GetMapping("/cesta/recupera-cesta/{idUsuario}") diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/PedidoController.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/PedidoController.java index e269f2c..f248520 100644 --- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/PedidoController.java +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/PedidoController.java @@ -39,5 +39,17 @@ public Pedido actualizaPedido (@RequestBody Pedido pedido) { public void actualizaPedido (@PathVariable Long id) { pedidoServiceI.borraPedido(id); } + + @GetMapping("/pedidos/pedidos-estado/{estado}") + public List recuperaPedidoId(@PathVariable String estado) { + return pedidoServiceI.recuperaPedidosPorEstado(estado); + + } + + @GetMapping("/pedidos/lista") + public List recuperaPedidos() { + return pedidoServiceI.recuperaPedidos(); + + } } diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/ProductoController.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/ProductoController.java index 47581ce..cc493ce 100644 --- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/ProductoController.java +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/ProductoController.java @@ -1,5 +1,6 @@ package net.ostemplate.app.productos.controllers; +import java.io.File; import java.io.IOException; import java.net.MalformedURLException; import java.nio.file.Files; @@ -20,7 +21,6 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -35,6 +35,7 @@ import net.ostemplate.app.productos.models.entity.ImagenProducto; import net.ostemplate.app.productos.models.entity.Producto; import net.ostemplate.app.productos.models.entity.ProductoCaracteristicas; +import net.ostemplate.app.productos.models.service.ImagenProductoI; import net.ostemplate.app.productos.models.service.ProductoServiceI; @RestController @@ -45,6 +46,9 @@ public class ProductoController { @Autowired private ProductoServiceI productoService; + @Autowired + private ImagenProductoI imagenProductoI; + @GetMapping("/lista") public List listar(){ return productoService.findAll(); @@ -63,7 +67,7 @@ public Producto insertarProducto (@RequestBody Producto producto) { } @DeleteMapping("/producto/borrar/{id}") - public void borrarProducto (@RequestBody Long id) { + public void borrarProducto (@PathVariable Long id) { productoService.borrarProducto(id); } @@ -127,6 +131,13 @@ public ResponseEntity subidaImagen (@RequestParam ("archivo") MultipartFile a } + + @DeleteMapping("producto/borrar-imagen/{imagen}") + public void eliminarImagen(@PathVariable("imagen")String imagen) { + imagenProductoI.borrarImagen(imagen); + + } + @GetMapping("/producto/imagen/{nombreFoto:.+}") public ResponseEntity verFoto (@PathVariable String nombreFoto){ Path rutaArchivo = Paths.get("uploads").resolve(nombreFoto).toAbsolutePath(); diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/TiendaController.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/TiendaController.java new file mode 100644 index 0000000..c272ba5 --- /dev/null +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/TiendaController.java @@ -0,0 +1,34 @@ +package net.ostemplate.app.productos.controllers; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import net.ostemplate.app.productos.models.entity.Tienda; +import net.ostemplate.app.productos.models.service.TiendaServiceI; + +@RestController +public class TiendaController { + + @Autowired + private TiendaServiceI tiendaServiceI; + + @GetMapping("/tienda/nombre") + public Tienda getNombreTienda() { + return tiendaServiceI.getNombreDeTienda(); + } + + @PostMapping("/tienda/cambia-nombre/{nombre}") + public String cambiaNombre(@PathVariable String nombre) { + return tiendaServiceI.actualizaTienda(nombre); + } + + @PostMapping("/tienda/cambia-tienda") + public Tienda cambiaNombre(@RequestBody Tienda tienda) { + return tiendaServiceI.guardaTienda(tienda); + } + +} diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/ImagenProductoDao.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/ImagenProductoDao.java new file mode 100644 index 0000000..cb654a3 --- /dev/null +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/ImagenProductoDao.java @@ -0,0 +1,11 @@ +package net.ostemplate.app.productos.models.dao; + +import org.springframework.data.repository.CrudRepository; + +import net.ostemplate.app.productos.models.entity.ImagenProducto; + +public interface ImagenProductoDao extends CrudRepository{ + + void deleteByImagen(String imagen); + +} diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/PedidoRepository.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/PedidoRepository.java index 7229c0b..15e46b0 100644 --- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/PedidoRepository.java +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/PedidoRepository.java @@ -9,5 +9,7 @@ public interface PedidoRepository extends CrudRepository { List findByIdUsuario (Long idUsuario); + + List findByEstado(String estado); } diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/ProductoCantidadRepository.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/ProductoCantidadRepository.java new file mode 100644 index 0000000..d0396cd --- /dev/null +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/ProductoCantidadRepository.java @@ -0,0 +1,15 @@ +package net.ostemplate.app.productos.models.dao; + +import java.util.List; + +import org.springframework.data.repository.CrudRepository; + +import net.ostemplate.app.productos.models.entity.ProductoCantidad; + +public interface ProductoCantidadRepository extends CrudRepository { + + void deleteAllByIdProducto (Long idProducto); + + List findAllByIdProducto(Long idProducto); + +} diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/TiendaRepository.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/TiendaRepository.java new file mode 100644 index 0000000..597ae44 --- /dev/null +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/TiendaRepository.java @@ -0,0 +1,9 @@ +package net.ostemplate.app.productos.models.dao; + +import org.springframework.data.repository.CrudRepository; + +import net.ostemplate.app.productos.models.entity.Tienda; + +public interface TiendaRepository extends CrudRepository { + +} diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/entity/Tienda.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/entity/Tienda.java index 64a77f2..db36579 100644 --- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/entity/Tienda.java +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/entity/Tienda.java @@ -21,6 +21,15 @@ public class Tienda implements Serializable{ @Column(name="id") private Long id; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + public String getNombreTienda() { return nombreTienda; } diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/CestaServiceI.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/CestaServiceI.java index 92451f7..99ae4af 100644 --- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/CestaServiceI.java +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/CestaServiceI.java @@ -20,4 +20,7 @@ public interface CestaServiceI { void eliminaCesta(Cesta cesta); + + void eliminarUnProductoDeLasCestas(Long idProducto); + } diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/CestaServiceImpl.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/CestaServiceImpl.java index 181c50b..a145138 100644 --- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/CestaServiceImpl.java +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/CestaServiceImpl.java @@ -8,6 +8,7 @@ import org.springframework.stereotype.Service; import net.ostemplate.app.productos.models.dao.ComprasRepository; +import net.ostemplate.app.productos.models.dao.ProductoCantidadRepository; import net.ostemplate.app.productos.models.entity.Cesta; import net.ostemplate.app.productos.models.entity.ProductoCantidad; @@ -16,6 +17,9 @@ public class CestaServiceImpl implements CestaServiceI { @Autowired private ComprasRepository comprasRepository; + + @Autowired + private ProductoCantidadRepository productoCantidadRepository; @Override @Transactional @@ -65,6 +69,12 @@ public Cesta eliminarDeLaCesta(Long idUsuario, Long idProducto) { cesta.setProductoCesta(listaProductoCantidad); return guardaCesta(cesta); + } + @Override + @Transactional + public void eliminarUnProductoDeLasCestas(Long idProducto) { + productoCantidadRepository.deleteAllByIdProducto(idProducto); + } private ProductoCantidad incrementa(ProductoCantidad productoCantidad) { diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ImagenProductoI.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ImagenProductoI.java new file mode 100644 index 0000000..7901618 --- /dev/null +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ImagenProductoI.java @@ -0,0 +1,8 @@ +package net.ostemplate.app.productos.models.service; + +public interface ImagenProductoI { + + + void borrarImagen(String imagen); + +} diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ImagenProductoServiceImpl.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ImagenProductoServiceImpl.java new file mode 100644 index 0000000..65d816b --- /dev/null +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ImagenProductoServiceImpl.java @@ -0,0 +1,33 @@ +package net.ostemplate.app.productos.models.service; + +import java.io.File; +import java.nio.file.Path; +import java.nio.file.Paths; + +import javax.transaction.Transactional; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import net.ostemplate.app.productos.models.dao.ImagenProductoDao; +import net.ostemplate.app.productos.models.entity.ImagenProducto; + +@Service +public class ImagenProductoServiceImpl implements ImagenProductoI { + + @Autowired + private ImagenProductoDao imagenProductoDao; + + @Override + @Transactional + public void borrarImagen (String imagen) { + Path rutaFotoAnterior = Paths.get("uploads").resolve(imagen).toAbsolutePath(); + File archivoFotoAnterior = rutaFotoAnterior.toFile(); + if(archivoFotoAnterior.exists() && archivoFotoAnterior.canRead()) { + archivoFotoAnterior.delete(); + } + imagenProductoDao.deleteByImagen(imagen); + + } + +} diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/PedidoServiceI.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/PedidoServiceI.java index 5710720..e0e3cfc 100644 --- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/PedidoServiceI.java +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/PedidoServiceI.java @@ -13,6 +13,10 @@ public interface PedidoServiceI { Pedido findById(Long id); void borraPedido(Long id); + + List recuperaPedidosPorEstado(String estado); + + List recuperaPedidos(); } diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/PedidoServiceImpl.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/PedidoServiceImpl.java index 5d3d5c6..7076f08 100644 --- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/PedidoServiceImpl.java +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/PedidoServiceImpl.java @@ -40,5 +40,17 @@ public void borraPedido (Long id){ pedidoRepository.deleteById(id); } + @Override + @Transactional(readOnly = true) + public List recuperaPedidosPorEstado(String estado){ + return pedidoRepository.findByEstado(estado); + + } + @Override + @Transactional(readOnly = true) + public List recuperaPedidos(){ + return (List) pedidoRepository.findAll(); + + } } diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ProductoServiceI.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ProductoServiceI.java index 9fc995f..100897a 100644 --- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ProductoServiceI.java +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ProductoServiceI.java @@ -51,6 +51,8 @@ public interface ProductoServiceI { * @return producto */ public Producto modificarProducto(Producto producto); + + void borrarUnProducto(Producto producto); } diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ProductoServiceImpl.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ProductoServiceImpl.java index ba2a4dc..ce64138 100644 --- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ProductoServiceImpl.java +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ProductoServiceImpl.java @@ -6,6 +6,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import net.ostemplate.app.productos.models.dao.ProductoCantidadRepository; import net.ostemplate.app.productos.models.dao.ProductoRepository; import net.ostemplate.app.productos.models.entity.Producto; @@ -15,6 +16,12 @@ public class ProductoServiceImpl implements ProductoServiceI { @Autowired private ProductoRepository productoRepository; + @Autowired + private ProductoCantidadRepository productoCantidadRepository; + + @Autowired + private CestaServiceI cestaServiceI; + @Override @Transactional(readOnly = true) public List findAll() { @@ -30,13 +37,15 @@ public Producto findById(Long id) { @Override @Transactional public Producto insertProducto(Producto producto) { - System.out.println("descripcion---" +producto.getProductoCaracteristicas().getDescripcion()); + System.out.println("descripcion---" + producto.getProductoCaracteristicas().getDescripcion()); return productoRepository.save(producto); } @Override @Transactional public void borrarProducto(Long id) { + if (!productoCantidadRepository.findAllByIdProducto(id).equals(null)) + cestaServiceI.eliminarUnProductoDeLasCestas(id); productoRepository.deleteById(id); } @@ -59,7 +68,14 @@ public Producto modificarProducto(Producto producto) { return productoRepository.save(producto); return producto; } - - + + @Override + @Transactional + public void borrarUnProducto(Producto producto) { + if (!productoCantidadRepository.findAllByIdProducto(producto.getId()).equals(null)) + cestaServiceI.eliminarUnProductoDeLasCestas(producto.getId()); + productoRepository.delete(producto); + + } } diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/TiendaServiceI.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/TiendaServiceI.java new file mode 100644 index 0000000..3f6d795 --- /dev/null +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/TiendaServiceI.java @@ -0,0 +1,14 @@ +package net.ostemplate.app.productos.models.service; + +import net.ostemplate.app.productos.models.entity.Tienda; + +public interface TiendaServiceI { + + + String actualizaTienda(String nombreTienda); + + Tienda getNombreDeTienda(); + + Tienda guardaTienda(Tienda tienda); + +} diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/TiendaServiceImpl.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/TiendaServiceImpl.java new file mode 100644 index 0000000..3ef9557 --- /dev/null +++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/TiendaServiceImpl.java @@ -0,0 +1,40 @@ +package net.ostemplate.app.productos.models.service; + +import javax.transaction.Transactional; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import net.ostemplate.app.productos.models.dao.TiendaRepository; +import net.ostemplate.app.productos.models.entity.Tienda; + +@Service +public class TiendaServiceImpl implements TiendaServiceI { + + @Autowired + private TiendaRepository tiendaRepository; + + @Override + @Transactional + public String actualizaTienda(String nombreTienda) { + Tienda tienda = new Tienda(); + tienda.setId(1L); + tienda.setNombreTienda(nombreTienda); + tienda = tiendaRepository.save(tienda); + return tienda.getNombreTienda(); + + } + @Override + @Transactional + public Tienda guardaTienda(Tienda tienda) { + return tiendaRepository.save(tienda); + + } + + @Override + @Transactional + public Tienda getNombreDeTienda() { + return tiendaRepository.findById(1L).orElse(null); + } + +}