edge/doc/apps/server-api/share.md
William Petit f99b1ac6ac
All checks were successful
arcad/edge/pipeline/head This commit looks good
feat(module,share): cross-app resource sharing module
2023-04-21 12:40:09 +02:00

4.7 KiB

Module share

Ce module permet partager des ressources à destination des autres applications exécutées dans l'environnement Edge.

Propriétés

share.ANY_TYPE, share.ANY_NAME

Les propriétés share.ANY_TYPE et share.ANY_NAME sont utilisées dans la méthode share.findResources() pour récupérer ne pas appliquer de filtre spécifique au type ou au nom des attributs respectivement.

share.TYPE_TEXT, share.TYPE_NUMBER, share.TYPE_PATH, share.TYPE_BOOL

Ces propriétés correspondant aux types d'attributs possibles dans une ressource.

Le type share.TYPE_PATH décrit un "chemin" destiné à être transformé en URL par l'application consommatrice de la ressource sous la forme ${APP_URL}${PATH}. Ce type d'attribut peut être utilisé pour partager des URLs (médias, pages, etc) entre applications.

Méthodes

share.upsertResource(ctx: Context, resourceId: string, ...attributes: Attribute[]): Resource

Cette méthode permet de créer une ressource ou de la mettre à jour si elle existe déjà. Elle prend en paramètre le contexte d'exécution, l'identifiant de la ressource et une liste d'attributs.

Si la ressource n'existe pas, elle sera créée avec les attributs fournis. Si elle existe, les attributs existants seront mis à jour avec les valeurs fournies.

Arguments

  • ctx: Context: Le contexte d'exécution.
  • resourceId: string: L'identifiant de la ressource.
  • ...attributes: Attribute[]: Une liste d'attributs. Chaque attribut est représenté par un objet de type Attribute.

Valeur de retour

La méthode retourne un objet de type Resource qui représente la ressource créée ou mise à jour.

Usage

const resource = share.upsertResource(ctx, "my-resource", { name: "color", type: share.TYPE_TEXT, value: "red" });
console.log(resource);
// Output: { id: "my-resource", origin: "my.app", attributes: [{ name: "color", type: "text", value: "red", createdAt: "2023-04-21T14:30:00Z", updatedAt: "2023-04-21T14:30:00Z" }] }

share.findResources(ctx: Context, withAttribute?: string, withType?: string): []Resource

Cette méthode permet de rechercher des ressources en fonction de leurs attributs. Elle prend en paramètre le contexte d'exécution et deux paramètres optionnels qui permettent de filtrer les ressources.

Arguments

  • ctx: Context: Le contexte d'exécution.
  • withAttribute?: string: (optionnel) Le nom de l'attribut à rechercher (share.ANY_NAME par défaut)
  • withType?: string: (optionnel) Le type de l'attribut à rechercher (share.ANY_TYPE par défaut)

Valeur de retour

La méthode retourne un tableau d'objets de type Resource qui représentent les ressources correspondant aux critères de recherche.

Usage

const resources = share.findResources(ctx, "color", share.TYPE_TEXT);
console.log(resources);
// Output: [{ id: "my-resource", origin: "my/app", attributes: [{ name: "color", type: "text", value: "red", createdAt: "2023-04-21T14:30:00Z", updatedAt: "2023-04-21T14:30:00Z" }] }]

share.deleteAttributes(ctx: Context, resourceId: string, ...names: string[]): Resource

Cette méthode supprime un ou plusieurs attributs de la ressource spécifiée.

Arguments

  • ctx: Context: contexte d'exécution
  • resourceId: string: identifiant unique de la ressource à modifier
  • ...names: string[]: tableau de noms d'attributs à supprimer

Valeur de retour

La méthode retourne un objet de type Resource qui représente la ressource modifiée.

Usage

const resource = share.upsertResource(ctx, "my-resource", { name: "color", type: share.TYPE_TEXT, value: "red" });
console.log(resource);
// Output: { id: "my-resource", origin: "my.app", attributes: [{ name: "color", type: "text", value: "red", createdAt: "2023-04-21T14:30:00Z", updatedAt: "2023-04-21T14:30:00Z" }] }

share.deleteResource(ctx: Context, resourceId: string)

Cette méthode supprime la ressource spécifiée.

Arguments

  • ctx: Context: contexte d'exécution
  • resourceId: string: identifiant unique de la ressource à supprimer

Valeur de retour

La méthode ne retourne pas de valeur.

Usage

const resource = share.deleteResource(ctx, "my-resource");

Objets

Context

Voir la documentation du module context

Resource

interface Resource {
    id: string
    origin: string
    attributes: Attribute[]
}

Attribute

interface Attribute {
    name: string
    type: ValueType
    createdAt: string
    updatedAt: string
}

ValueType

enum ValueType {
    TYPE_TEXT = "text",
    TYPE_PATH = "path",
    TYPE_NUMBER = "number",
    TYPE_BOOL = "bool"
}