51 lines
1.1 KiB
TypeScript
51 lines
1.1 KiB
TypeScript
import { Transformer } from '@/lib/Transformer/Transformer';
|
|
|
|
export class UserTransformer extends Transformer {
|
|
/**
|
|
* Exclude these attributes from user object.
|
|
* @returns {Array}
|
|
*/
|
|
public excludeAttributes = (): string[] => {
|
|
return ['role'];
|
|
};
|
|
|
|
/**
|
|
* Includeded attributes.
|
|
* @returns {string[]}
|
|
*/
|
|
public includeAttributes = (): string[] => {
|
|
return ['roleName', 'roleDescription', 'roleSlug'];
|
|
};
|
|
|
|
/**
|
|
* Retrieves the localized role name if is predefined or stored name.
|
|
* @param role
|
|
* @returns {string}
|
|
*/
|
|
public roleName(user) {
|
|
return user.role.predefined
|
|
? this.context.i18n.__(user.role.name)
|
|
: user.role.name;
|
|
}
|
|
|
|
/**
|
|
* Retrieves the localized role description if is predefined or stored description.
|
|
* @param user
|
|
* @returns {string}
|
|
*/
|
|
public roleDescription(user) {
|
|
return user.role.predefined
|
|
? this.context.i18n.__(user.role.description)
|
|
: user.role.description;
|
|
}
|
|
|
|
/**
|
|
* Retrieves the role slug.
|
|
* @param user
|
|
* @returns {string}
|
|
*/
|
|
public roleSlug(user) {
|
|
return user.role.slug;
|
|
}
|
|
}
|