diff --git a/monorepo/apps/backend/src/app/restauracja/restauracja.controller.ts b/monorepo/apps/backend/src/app/restauracja/restauracja.controller.ts index 7ed27105..de5c068c 100644 --- a/monorepo/apps/backend/src/app/restauracja/restauracja.controller.ts +++ b/monorepo/apps/backend/src/app/restauracja/restauracja.controller.ts @@ -9,6 +9,7 @@ export class RestauracjaController { @Get() async findAll(): Promise { + console.log(`restauracja all`); return this.restauracjaService.findAll(); } diff --git a/monorepo/apps/backend/src/main.ts b/monorepo/apps/backend/src/main.ts index a124382d..41241d87 100644 --- a/monorepo/apps/backend/src/main.ts +++ b/monorepo/apps/backend/src/main.ts @@ -10,6 +10,7 @@ import { AppModule } from './app/app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule); + app.enableCors(); const globalPrefix = 'api'; app.setGlobalPrefix(globalPrefix); const port = process.env.PORT || 3000; diff --git a/monorepo/apps/frontend/src/app/app.routes.ts b/monorepo/apps/frontend/src/app/app.routes.ts index 8762dfe2..f3ef99c1 100644 --- a/monorepo/apps/frontend/src/app/app.routes.ts +++ b/monorepo/apps/frontend/src/app/app.routes.ts @@ -1,3 +1,6 @@ import { Route } from '@angular/router'; +import { RestauracjaComponent } from './restauracja/restauracja.component'; -export const appRoutes: Route[] = []; +export const appRoutes: Route[] = [ + {path: 'restauracja', component: RestauracjaComponent} +]; diff --git a/monorepo/apps/frontend/src/app/restauracja/restauracja.component.html b/monorepo/apps/frontend/src/app/restauracja/restauracja.component.html index 4d7fa39c..135b364b 100644 --- a/monorepo/apps/frontend/src/app/restauracja/restauracja.component.html +++ b/monorepo/apps/frontend/src/app/restauracja/restauracja.component.html @@ -1 +1,23 @@ -

restauracja works!

+ +
+

Restauracja List

+ + +

Create Restauracja

+ + + +
+

Edit Restauracja

+ + + +
+
+ \ No newline at end of file diff --git a/monorepo/apps/frontend/src/app/restauracja/restauracja.component.ts b/monorepo/apps/frontend/src/app/restauracja/restauracja.component.ts index 8769de41..883bfe52 100644 --- a/monorepo/apps/frontend/src/app/restauracja/restauracja.component.ts +++ b/monorepo/apps/frontend/src/app/restauracja/restauracja.component.ts @@ -1,11 +1,65 @@ import { Component } from '@angular/core'; import { CommonModule } from '@angular/common'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { FormsModule } from '@angular/forms'; + +interface Restauracja { + id?: number; + adres: string; +} @Component({ selector: 'app-restauracja', standalone: true, - imports: [CommonModule], + imports: [CommonModule, FormsModule, HttpClientModule], templateUrl: './restauracja.component.html', styleUrl: './restauracja.component.css', }) -export class RestauracjaComponent {} +export class RestauracjaComponent { + restauracje: Restauracja[] = []; + newRestauracja: Restauracja = { adres: '' }; + editRestauracja: Restauracja | null = null; + private apiUrl = 'http://localhost:3000/api/restauracja'; + + constructor(private http: HttpClient) { } + + ngOnInit(): void { + this.loadRestauracje(); + } + + loadRestauracje(): void { + this.http.get(this.apiUrl).subscribe(data => { + this.restauracje = data; + }); + } + + createRestauracja(): void { + this.http.post(this.apiUrl, this.newRestauracja).subscribe(data => { + this.restauracje.push(data); + this.newRestauracja = { adres: '' }; + }); + } + + updateRestauracja(): void { + if (this.editRestauracja && this.editRestauracja.id) { + this.http.put(`${this.apiUrl}/${this.editRestauracja.id}`, this.editRestauracja).subscribe(data => { + this.loadRestauracje(); + this.editRestauracja = null; + }); + } + } + + deleteRestauracja(id: number): void { + this.http.delete(`${this.apiUrl}/${id}`).subscribe(() => { + this.restauracje = this.restauracje.filter(r => r.id !== id); + }); + } + + startEdit(restauracja: Restauracja): void { + this.editRestauracja = { ...restauracja }; + } + + cancelEdit(): void { + this.editRestauracja = null; + } +}