From 920c8ea95c5e275f34b89a72bfab941a0ce3ba91 Mon Sep 17 00:00:00 2001 From: "a.bouhuolia" Date: Fri, 14 Apr 2023 03:43:39 +0200 Subject: [PATCH] feat(server): add user transformer --- .../src/services/Users/UserTransformer.ts | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 packages/server/src/services/Users/UserTransformer.ts diff --git a/packages/server/src/services/Users/UserTransformer.ts b/packages/server/src/services/Users/UserTransformer.ts new file mode 100644 index 000000000..958e71080 --- /dev/null +++ b/packages/server/src/services/Users/UserTransformer.ts @@ -0,0 +1,50 @@ +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; + } +}