Skip to main content

.PROJECTKEYVAL

Speichert nutzerspezifische, projektweite Schlüssel-Wert-Paare (RAGAI.PROJECTKEYVAL), geteilt über alle Bots eines Projekts.

Hintergrund

Strukturell identisch zu KeyValService (RAGAI.KEYVAL) - gleiche Methodennamen, gleiches Synchronisationsprinzip per Socket-Events (onKeyValUpdate/onKeyValDelete). Der einzige Unterschied ist der Geltungsbereich: RAGAI.KEYVAL ist pro Bot isoliert, RAGAI.PROJECTKEYVAL teilt die Daten eines Nutzers über alle Bots desselben Projekts hinweg (z. B. für RAGAI.GROUPCHAT oder projektweite Nutzerprofile). Es gibt hier keine !-Präfix-Konvention für dauerhafte Speicherung wie bei RAGAI.KEYVAL.

Events

onKeyValUpdate

Feuert mit dem betroffenen Eintrag, sobald ein Wert per Socket von anderswo aktualisiert wurde.

RAGAI.PROJECTKEYVAL.onKeyValUpdate.subscribe((value) => {
console.log(value);
});

onKeyValDelete

Feuert mit dem betroffenen Eintrag, sobald ein Wert per Socket von anderswo gelöscht wurde.

RAGAI.PROJECTKEYVAL.onKeyValDelete.subscribe((value) => {
console.log(value);
});

Methoden

.deleteKeyValEntry(key, type?)

Löscht einen projektweiten Eintrag des aktuellen Nutzers.

ParameterTypBeschreibung
keystring | z.input<typeof keyValGetSchema>Der zu löschende Schlüssel, oder ein Objekt gemäß keyValGetSchema.
typestringOptionaler Typ zur Kategorisierung. Standard: "custom".

Objekt-Form (validiert über keyValGetSchema):

FeldTypPflichtBeschreibung
keystringEindeutiger Schlüssel des Eintrags. Mit !-Präfix wird der Wert dauerhaft gespeichert.
typestring– (Standard: "custom")Optionaler Typ zur Kategorisierung der Einträge.

Rückgabewert: Promise<unknown>

Der gelöschte Eintrag.

.get(key, type?)

Gibt den Wert des angegebenen Schlüssels für den aktuellen Nutzer projektweit zurück, oder null.

ParameterTypBeschreibung
keystring | z.input<typeof keyValGetSchema>Eindeutiger Schlüssel, oder ein Objekt gemäß keyValGetSchema.
typestringOptionaler Typ zur Kategorisierung. Standard: "custom".

Objekt-Form (validiert über keyValGetSchema):

FeldTypPflichtBeschreibung
keystringEindeutiger Schlüssel des Eintrags. Mit !-Präfix wird der Wert dauerhaft gespeichert.
typestring– (Standard: "custom")Optionaler Typ zur Kategorisierung der Einträge.

Rückgabewert: Promise<unknown>

Der gespeicherte Wert oder null.

.set(key, value?, type?)

Speichert einen Wert projektweit für den aktuellen Nutzer.

ParameterTypBeschreibung
keystring | z.input<typeof keyValSetSchema>Eindeutiger Schlüssel, oder ein Objekt gemäß keyValSetSchema.
valueunknownDer zu speichernde Wert.
typestringOptionaler Typ zur Kategorisierung. Standard: "custom".

Objekt-Form (validiert über keyValSetSchema):

FeldTypPflichtBeschreibung
keystringEindeutiger Schlüssel des Eintrags. Mit !-Präfix wird der Wert dauerhaft gespeichert.
valueanyDer zu speichernde Wert (String, Zahl, Objekt, Array etc.).
typestring– (Standard: "custom")Optionaler Typ zur Kategorisierung der Einträge.

Rückgabewert: Promise<ProjectKeyValEntry>

Der gespeicherte Eintrag.

.unique(key, value?, type?)

Wie set, hängt dem Schlüssel aber automatisch einen Zeitstempel an.

ParameterTypBeschreibung
keystring | z.input<typeof keyValSetSchema>Basis-Schlüssel, wird um einen Zeitstempel ergänzt, oder ein Objekt gemäß keyValSetSchema.
valueunknownDer zu speichernde Wert.
typestringOptionaler Typ zur Kategorisierung. Standard: "custom".

Objekt-Form (validiert über keyValSetSchema):

FeldTypPflichtBeschreibung
keystringEindeutiger Schlüssel des Eintrags. Mit !-Präfix wird der Wert dauerhaft gespeichert.
valueanyDer zu speichernde Wert (String, Zahl, Objekt, Array etc.).
typestring– (Standard: "custom")Optionaler Typ zur Kategorisierung der Einträge.

Rückgabewert: Promise<ProjectKeyValEntry>

Der gespeicherte Eintrag.

.getByType(type)

Gibt alle projektweiten Einträge eines Typs für den aktuellen Nutzer zurück.

ParameterTypBeschreibung
typestringDer gesuchte Typ.

Rückgabewert: Promise<ProjectKeyValEntry[]>

Liste der passenden Einträge.