Skip to main content

All Attributes User – Guía de uso

Este documento explica cómo recuperar la propiedad allAttributes que es parte de los datos del usuario logueado, desde cualquier Microfrontend Remoto.


tip

Recuerda que los atributos nos permiten asociar información extra a un usuario, que pueden ser útiles para las difentes reglas de negocio que puede tener una aplicación.

📁 Importaciones necesarias

En tu componente local importa AlpuraStorageViewModel usando la librería de @alpura/commons.

// En tu componente.ts o servicio.ts
import { AlpuraStorageViewModel } from "@alpura/commons";

🧩 Ejemplo de uso | Para recuperar un atributo en especifico.

export class MyComponent {
/**
* Servicio de gestión de almacenamiento.
* Inyecta `AlpuraStorageViewModel` para controlar los tipos de almacenamiento
* de datos mediante localstorage, session storage, storage(map) y cookie.
*
* @readonly
* @type {AlpuraStorageViewModel}
*/
private readonly storageVm = inject(AlpuraStorageViewModel);

/**
* Ciclo de vida de angular.
* Se invoca el metodo getAllAttributeValue() y le pasamos como parametro el atributo que queremos recuperar
*/
ngOnInit(){
const area = this.getAllAttributeValue('AREA_ETIQUETADO');
}

/**
* Obtiene el valor de un atributo específico almacenado en `allAttributes`.
*
* Origen de datos:
* - Lee el objeto completo `allAttributes` desde el `storageMap` (vía `AlpuraStorageViewModel`).
*
* Reglas:
* - Si `allAttributes` no existe en el storageMap, retorna `null`.
* - Si la clave no existe dentro de `allAttributes`, retorna `null`.
* - Si el valor existe pero es `undefined` o `null`, retorna `null`.
* - Para cualquier otro tipo de valor, lo normaliza a `string` usando `String(value)`.
*
* @param {string} key Clave del atributo a recuperar (ej. `'DIRECCION'`, `'PUESTO'`).
* @returns {string | null} Valor del atributo normalizado a `string`, o `null` si no existe.
*
* @example
* const direccion = this.userContext.getAllAttributeValue('DIRECCION');
* // direccion => "PRODUCCION" | null
*/
public getAllAttributeValue(key: string): unknown {
const attrs = this.storageVm.getStorageMap('allAttributes') as Record<
string,
unknown
> | null;

const value = attrs?.[key];
return value === undefined || value === null ? null : String(value);
}
}

🧩 Ejemplo de uso | Para recuperar todos los atributos.

export class MyComponent {
/**
* Servicio de gestión de almacenamiento.
* Inyecta `AlpuraStorageViewModel` para controlar los tipos de almacenamiento
* de datos mediante localstorage, session storage, storage(map) y cookie.
*
* @readonly
* @type {AlpuraStorageViewModel}
*/
private readonly storageVm = inject(AlpuraStorageViewModel);

/**
* Ciclo de vida de angular.
* Se invoca el metodo getStorageMap() y le pasamos la propiedad que queremos recuperar desde el store.
*
* Origen de datos:
* - Lee el objeto completo `allAttributes` desde el `storageMap` (vía `AlpuraStorageViewModel`).
*
* Reglas:
* - Si `allAttributes` no existe en el storageMap, retorna `null`.
*/
ngOnInit(){
const attrs = this.storageVm.getStorageMap('allAttributes') as Record<
string,
unknown
> | null;
}
}

🚀 Resultado esperado

Esta implementación nos permite recuperar cualquier atributo custom que tenga asociado el usuario ya sea en forma de lista o por un atributo en especifíco.


📬 Soporte

Para dudas o mejoras, puedes contactar al equipo de arquitectura.