mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-11-11 18:53:53 +01:00
feat: proof of concept single restaurant comopnent
This commit is contained in:
parent
bfc24cce21
commit
3d3c45e048
@ -9,6 +9,7 @@ export class RestauracjaController {
|
|||||||
|
|
||||||
@Get()
|
@Get()
|
||||||
async findAll(): Promise<Restauracja[]> {
|
async findAll(): Promise<Restauracja[]> {
|
||||||
|
console.log(`restauracja all`);
|
||||||
return this.restauracjaService.findAll();
|
return this.restauracjaService.findAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import { AppModule } from './app/app.module';
|
|||||||
|
|
||||||
async function bootstrap() {
|
async function bootstrap() {
|
||||||
const app = await NestFactory.create(AppModule);
|
const app = await NestFactory.create(AppModule);
|
||||||
|
app.enableCors();
|
||||||
const globalPrefix = 'api';
|
const globalPrefix = 'api';
|
||||||
app.setGlobalPrefix(globalPrefix);
|
app.setGlobalPrefix(globalPrefix);
|
||||||
const port = process.env.PORT || 3000;
|
const port = process.env.PORT || 3000;
|
||||||
|
|||||||
@ -1,3 +1,6 @@
|
|||||||
import { Route } from '@angular/router';
|
import { Route } from '@angular/router';
|
||||||
|
import { RestauracjaComponent } from './restauracja/restauracja.component';
|
||||||
|
|
||||||
export const appRoutes: Route[] = [];
|
export const appRoutes: Route[] = [
|
||||||
|
{path: 'restauracja', component: RestauracjaComponent}
|
||||||
|
];
|
||||||
|
|||||||
@ -1 +1,23 @@
|
|||||||
<p>restauracja works!</p>
|
<!-- src/app/restauracja/restauracja.component.html -->
|
||||||
|
<div>
|
||||||
|
<h2>Restauracja List</h2>
|
||||||
|
<ul>
|
||||||
|
<li *ngFor="let restauracja of restauracje">
|
||||||
|
{{ restauracja.adres }}
|
||||||
|
<button (click)="startEdit(restauracja)">Edit</button>
|
||||||
|
<button (click)="deleteRestauracja(restauracja.id!)">Delete</button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>Create Restauracja</h2>
|
||||||
|
<input [(ngModel)]="newRestauracja.adres" placeholder="Adres">
|
||||||
|
<button (click)="createRestauracja()">Create</button>
|
||||||
|
|
||||||
|
<div *ngIf="editRestauracja">
|
||||||
|
<h2>Edit Restauracja</h2>
|
||||||
|
<input [(ngModel)]="editRestauracja.adres" placeholder="Adres">
|
||||||
|
<button (click)="updateRestauracja()">Update</button>
|
||||||
|
<button (click)="cancelEdit()">Cancel</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
@ -1,11 +1,65 @@
|
|||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
|
||||||
|
interface Restauracja {
|
||||||
|
id?: number;
|
||||||
|
adres: string;
|
||||||
|
}
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-restauracja',
|
selector: 'app-restauracja',
|
||||||
standalone: true,
|
standalone: true,
|
||||||
imports: [CommonModule],
|
imports: [CommonModule, FormsModule, HttpClientModule],
|
||||||
templateUrl: './restauracja.component.html',
|
templateUrl: './restauracja.component.html',
|
||||||
styleUrl: './restauracja.component.css',
|
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<Restauracja[]>(this.apiUrl).subscribe(data => {
|
||||||
|
this.restauracje = data;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
createRestauracja(): void {
|
||||||
|
this.http.post<Restauracja>(this.apiUrl, this.newRestauracja).subscribe(data => {
|
||||||
|
this.restauracje.push(data);
|
||||||
|
this.newRestauracja = { adres: '' };
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
updateRestauracja(): void {
|
||||||
|
if (this.editRestauracja && this.editRestauracja.id) {
|
||||||
|
this.http.put<Restauracja>(`${this.apiUrl}/${this.editRestauracja.id}`, this.editRestauracja).subscribe(data => {
|
||||||
|
this.loadRestauracje();
|
||||||
|
this.editRestauracja = null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteRestauracja(id: number): void {
|
||||||
|
this.http.delete<Restauracja>(`${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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user