Umbau Filter linksseitig
This commit is contained in:
60
bizmatch/src/app/services/validation.service.ts
Normal file
60
bizmatch/src/app/services/validation.service.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
|
||||
export interface ValidationMessage {
|
||||
field: string;
|
||||
message: string;
|
||||
}
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class ValidationService {
|
||||
private messages: ValidationMessage[] = [];
|
||||
|
||||
constructor() {}
|
||||
|
||||
/**
|
||||
* Fügt Validierungsnachrichten hinzu oder aktualisiert bestehende
|
||||
* @param messages Array von Validierungsnachrichten
|
||||
*/
|
||||
setMessages(messages: ValidationMessage[]): void {
|
||||
this.messages = messages;
|
||||
}
|
||||
|
||||
/**
|
||||
* Löscht alle Validierungsmeldungen
|
||||
*/
|
||||
clearMessages(): void {
|
||||
this.messages = [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft, ob für ein bestimmtes Feld eine Validierungsmeldung existiert
|
||||
* @param field Name des Feldes
|
||||
* @returns true, wenn eine Meldung existiert
|
||||
*/
|
||||
hasMessage(field: string): boolean {
|
||||
return this.messages.some(message => message.field === field);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt die Validierungsmeldung für ein bestimmtes Feld zurück
|
||||
* @param field Name des Feldes
|
||||
* @returns ValidationMessage oder null, wenn keine Meldung existiert
|
||||
*/
|
||||
getMessage(field: string): ValidationMessage | null {
|
||||
return this.messages.find(message => message.field === field) || null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Hilfsmethode zur Verarbeitung von API-Fehlermeldungen
|
||||
* @param error API-Fehler mit message-Array
|
||||
*/
|
||||
handleApiError(error: any): void {
|
||||
if (error && error.message && Array.isArray(error.message)) {
|
||||
this.setMessages(error.message);
|
||||
} else {
|
||||
this.clearMessages();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user